Удалить значения в VBA со скрытыми ячейками - PullRequest
0 голосов
/ 13 января 2020

Я пытаюсь удалить все значения «0» из таблицы в Excel. У меня написан следующий код, но он возвращает, что Метод 'Range of object'_Worksheet' не удалось. Что мне нужно сделать, чтобы это исправить?

Sub Macro()

Dim ws As Worksheet          
''Set reference
Set ws = ThisWorkbook.Worksheets("Compressed Schedule results")

''Apply Filter
    ws.Range("A2:B2").AutoFilter Field:=1, Criteria1:="0"
 lrow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).SpecialCells(xlCellTypeVisible).Row
''Delete the Rows
Application.DisplayAlerts = False
ws.Range("A2:lrow").SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True


ws.ShowAllData



End Sub

1 Ответ

1 голос
/ 13 января 2020

Как заметил @BigBen, вы неверно ссылаетесь на диапазон с переменной. Я также удалил SpecialCells при настройке последней строки:

Sub Macro()
Dim ws As Worksheet
Dim lRow As Long
''Set reference
Set ws = ThisWorkbook.Worksheets("Compressed Schedule results")
lRow = ws.Cells(Rows.Count, "A").End(xlUp).Row  
''Apply Filter  
ws.Range("A2:B2").AutoFilter Field:=1, Criteria1:="0"
''Delete the Rows
Application.DisplayAlerts = False
ws.Range("A2:A" & lRow).SpecialCells(xlCellTypeVisible).EntireRow.Delete
Application.DisplayAlerts = True
ws.ShowAllData
End Sub
...