我已成功为Excel编写了一个VBA脚本,它检查列A是否包含特定条目(在本例中为2016),然后将整行复制到新工作表中 .
唯一的问题是它将行复制到与原始工作表中完全相同的位置 . 因此,我之间得到空行 . 我希望宏可以在复制它们之后立即删除这些空行,或者将这些行一个接一个地复制到新工作表中 .
Sub CopyRow()
Application.ScreenUpdating = False
Dim x As Long
Dim MaxRowList As Long
Dim S As String
Dim wsSource As Worksheet
Dim wsTarget As Worksheet
Set wsSource = ThisWorkbook.Worksheets("Tab 1")
Set wsTarget = ThisWorkbook.Worksheets("Tab 2")
aCol = 1
MaxRowList = wsSource.Cells(rows.Count, aCol).End(xlUp).Row
For x = 2 To MaxRowList
If InStr(1, wsSource.Cells(x, 1), "2016") Then
wsTarget.rows(x).Value = wsSource.rows(x).Value
End If
Next
Application.ScreenUpdating = True
End Sub
任何帮助表示赞赏 . 提前致谢 .
3 回答
您可以为目标行设置变量,如下所示:
这样,它将开始在目标表第2行中复制这些值,并将根据if条件增加 . 告诉我它是怎么回事......
您可以使用
AutoFilter
方法,它将节省您在所有行中使用For
循环的需要,并且只需将整个过滤范围复制到"Tab 2"工作表 .Code (评论内部评论)