【发布时间】:2017-06-17 02:24:02
【问题描述】:
我已成功为 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
感谢任何帮助。提前致谢。
【问题讨论】:
-
1.您可以为导出行保留一个单独的行计数器 2. 您可以使用 .end(xlUp) (谷歌如何找到列中的最后一行)但请注意,这样做您将失去检测您是否已经已经复制了这些行。如果你用#2 运行宏两次,那么你会得到重复。如果您使用行计数器进行导出,那么您可以根据需要多次覆盖。