Приведенный ниже код фильтрует 4-й столбец Table1
на наличие пустых ячеек, а затем удаляет эти строки, если они пустые.
Sub DeleteJob()
Dim tbl As ListObject
Dim ws As Worksheet
'Set reference to the sheet and Table.
Set ws = Sheets("Line Item Summary")
Set tbl = ws.ListObjects("Table1")
ws.Activate
'Clear any existing filters
tbl.AutoFilter.ShowAllData
'1. Apply Filter
tbl.Range.AutoFilter Field:=4, Criteria1:=""
'2. Delete Rows
Application.DisplayAlerts = False
tbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True
'3. Clear Filter
tbl.AutoFilter.ShowAllData
End Sub
Когда код запускается один раз, все строки с пробелами удаляются, а в 4-м столбце остаются ячейки со значениями, но появляется ошибка, так как больше нет пустых ячеек для поиска /удалять. Я думал об использовании оператора «If / Else», чтобы при наличии пробелов соответствующая строка удалялась, иначе ничего не делайте, если все ячейки в столбце имеют значение. Я не знаю, как изменить код ниже, чтобы приспособиться к этому.
'2. Delete Rows
Application.DisplayAlerts = False
tbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True