Я успешно написал сценарий VBA для Excel, который проверяет, содержит ли столбец A конкретную запись (в данном случае: 2016), а затем копирует всю строку в новый рабочий лист.Удаление пустых строк в Excel после их копирования на новый рабочий лист с использованием VBA
Единственная проблема заключается в том, что он копирует строки в то же самое положение, что и на исходном листе. Из-за этого я получаю пустые строки между ними. Я хотел бы, чтобы макрос либо удалял эти пустые строки сразу после их копирования, либо копировал строки один за другим в новый рабочий лист.
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) (Google, как найти последнюю строку в столбец). Но имейте в виду, что при этом вы теряете способность обнаруживать, скопировали ли вы эти строки. Если вы дважды запустите макрос с # 2, вы получите дубликаты. Если вы используете счетчик строк для экспорта, вы можете просто перезаписать столько раз, сколько хотите. –