Excel如果值不为空,则将某些单元格复制到新工作表行

时间:2016-07-07 14:49:06

标签: excel vba excel-vba

我有这个代码,它将检查我的xls文件中的列E,如果它不是空白,则将该行复制到新的工作表。但是,我无法找到如何排除细胞。列C,D,E,F和G以及搜索列。如果我正在运行的宏(在这种情况下是E)中有数据,我想复制除C,D,F,G之外的行上的每个单元格。这可能吗?

Sub CopyYes()
    Dim c As Range
    Dim j As Integer
    Dim Source As Worksheet
    Dim Target As Worksheet

    ' Change worksheet designations as needed
    Set Source = ActiveWorkbook.Worksheets("Sheet1")
    Set Target = ActiveWorkbook.Worksheets("Sheet2")

    J = 1     ' Start copying to row 1 in target sheet
    For Each c In Source.Range("E1:E1000")   ' Do 1000 rows
        If c <> "" Then
           Source.Rows(c.Row).Copy Target.Rows(j)
           j = j + 1
        End If
    Next c
End Sub

2 个答案:

答案 0 :(得分:1)

这是您在代码中添加删除部分的方法:

EventEmitter

如果您有任何疑问,请告诉我。

答案 1 :(得分:0)

最简单的方法是编写一个包含您不想复制的列/行的字符串数组。

然后编写一个if语句,说如果代码当前正在查看的当前列/行,那么它应该移到下一部分。

如果您不知道

,以下是如何定义数组的方法
Dim DoNotCopy(1 to 10) as ListRows *OR as ListColumns*

在那里,您可以将数组的每个部分定义为列/行

Set DoNotCopy as Sheet("blah").Range("D:D")

希望这有帮助!