【问题标题】:VBA copy certain columns from one sheet to another when condition is met满足条件时,VBA将某些列从一张纸复制到另一张纸
【发布时间】:2019-01-28 19:38:35
【问题描述】:

这里的新成员试图了解以下代码可能有什么问题...

我正在尝试将行从“A5”复制到最后一行和 A:L 列,当 C =“Y”时,列“C 和 D”除外,但在执行宏和调试时没有得到任何东西,现在放弃了很多(尽管我是新来的 :-))。任何想法或帮助将不胜感激。

Private Sub UpdateImportFile_Click()

Dim count As Long
count = WorksheetFunction.CountA(Range("A5", Range("A5").End(xlDown)))

For i = 5 To count

If Worksheets("Case Entry").Cells(i, 3).Value = "Y" Then

    Worksheets("Case Entry").Rows(i).Columns(1, 2).Copy
    Worksheets("Import File").Activate
    Worksheets("Import File").Cells("A2").Select
    ActiveSheet.PasteSpecial xlPasteValues

End If

Next

Application.CutCopyMode = False
ThisWorkbook.Worksheets("Case Entry").Cells(1, 1).Select

End Sub

【问题讨论】:

  • 感谢我在工作表副本中仅包含第 1 列和第 2 列 - 应该是第 1、2、5、6、7、8、9、10、11 列
  • 如果你调试你的代码(你可以使用 F8 单步调试)count 得到什么值?

标签: excel vba


【解决方案1】:

试试这个:

Private Sub UpdateImportFile_Click()

    Dim count As Long
    count = WorksheetFunction.CountA(Range("A5", Range("A5").End(xlDown)))

    With Worksheets("Case Entry")
        For i = 5 To count + 4
            If .Cells(i, 3).Value = "Y" Then
                Worksheets("Import File").Cells(i, 1).Resize(1, 2).Value = .Cells(i, 1).Resize(1, 2).Value
            End If
        Next
    End With

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多