Excel vba для удаления пустых строк в диапазоне на нескольких листах

Здравствуйте, я пытаюсь удалить строки в диапазоне от 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
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
0
106
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  1. Избегайте Select.
  2. Квалифицируйте Range с помощью рабочего листа ws.
  3. Сначала проверьте наличие пустых ячеек.
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

Спасибо, Биг Бен, так как мне заставить это перебирать мои рабочие листы? Я попытался добавить его после исходного кода, но получил «следующий без»

Classmaz 09.12.2020 19:32

Вероятно, отсутствует End If... см. редактирование того, каким должен быть код внутри цикла.

BigBen 09.12.2020 19:35

теперь я получаю объектную переменную ошибки 91 во время выполнения или с переменной блока, не установленной

Classmaz 09.12.2020 19:43

Пожалуйста, на какой линии?

BigBen 09.12.2020 19:44

Извините, BigBen, я опечатался в имени рабочего листа, и это вызвало ошибку. Очень ценю вашу помощь

Classmaz 09.12.2020 20:13

Другие вопросы по теме