Здравствуйте, я пытаюсь удалить строки в диапазоне от 7 до 31, если данные в столбце A пусты. Однако я хочу, чтобы это запускало все рабочие листы, кроме тех, которые я указываю. Я попытался ввести код, но он не работает, может ли кто-нибудь указать мне, где я ошибся? Также должен ли я помещать обработку ошибок, если нет пустых ячеек?
Sub deletespaces()
Dim ws As Worksheet
Dim rng As Range
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Menu" And ws.Name <> "Paste here" And ws.Name <> "Data" Then
Range("a7:A31").Select
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End If
Next ws
End Sub
Select
.Range
с помощью рабочего листа ws
.If ws.Name <> "Menu" And ws.Name <> "Paste here" And ws.Name <> "Data" Then
Dim visibleCells As Range
Set visibleCells = Nothing
On Error Resume Next
Set visibleCells = ws.Range("a7:A31").SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If Not visibleCells Is Nothing Then
visibleCells.EntireRow.Delete
End If
End If
Вероятно, отсутствует End If
... см. редактирование того, каким должен быть код внутри цикла.
теперь я получаю объектную переменную ошибки 91 во время выполнения или с переменной блока, не установленной
Пожалуйста, на какой линии?
Извините, BigBen, я опечатался в имени рабочего листа, и это вызвало ошибку. Очень ценю вашу помощь
Спасибо, Биг Бен, так как мне заставить это перебирать мои рабочие листы? Я попытался добавить его после исходного кода, но получил «следующий без»