Добрый день! Имеется таблица с 1300 листами, необходимо удалить пустые строки в каждом листе. Подскажите пожалуйста, как можно это сделать? Пробовал через "Выделить все листы" и использовать макрос, но не сработало. Через выделение группы ячеек тоже не работает, так как команда привязана к листу на котором выполняется действие
Добрый день! Имеется таблица с 1300 листами, необходимо удалить пустые строки в каждом листе. Подскажите пожалуйста, как можно это сделать? Пробовал через "Выделить все листы" и использовать макрос, но не сработало. Через выделение группы ячеек тоже не работает, так как команда привязана к листу на котором выполняется действиеcrash173
Serge_007, я в макросах плохо разбираюсь, не получается зациклить
[vba]
Код
Sub UdalitPustieStroki() 'Шаг 1: Объявляем переменные Dim MyRange As Range Dim iCounter As Long 'Шаг 2: Указываем диапазон Set MyRange = ActiveSheet.UsedRange 'Шаг 3: Начинаем обратный цикл For iCounter = MyRange.Rows.Count To 1 Step -1 'Шаг 4: Если строка пустая, удаляем ее If Application.CountA(Rows(iCounter).EntireRow) = 0 Then Rows(iCounter).Delete End If 'Шаг 5: Увеличиваем счетчик Next iCounter End Sub
[/vba]
Пытался прописать, но выдаёт ошибку. Вот мой первоначальный макрос
Serge_007, я в макросах плохо разбираюсь, не получается зациклить
[vba]
Код
Sub UdalitPustieStroki() 'Шаг 1: Объявляем переменные Dim MyRange As Range Dim iCounter As Long 'Шаг 2: Указываем диапазон Set MyRange = ActiveSheet.UsedRange 'Шаг 3: Начинаем обратный цикл For iCounter = MyRange.Rows.Count To 1 Step -1 'Шаг 4: Если строка пустая, удаляем ее If Application.CountA(Rows(iCounter).EntireRow) = 0 Then Rows(iCounter).Delete End If 'Шаг 5: Увеличиваем счетчик Next iCounter End Sub
[/vba]
Пытался прописать, но выдаёт ошибку. Вот мой первоначальный макросcrash173
Сообщение отредактировал Serge_007 - Четверг, 14.04.2022, 11:02
Sub crash173() Dim WS As Worksheet, Еnd As Long, i As Long For Each WS In ThisWorkbook.Worksheets WS.Activate Еnd = Cells.SpecialCells(xlLastCell).Row For i = Еnd To 1 Step -1 If Rows(i).Text = "" Then Rows(i).Delete Next Next WS End Sub
[/vba]
[vba]
Код
Sub crash173() Dim WS As Worksheet, Еnd As Long, i As Long For Each WS In ThisWorkbook.Worksheets WS.Activate Еnd = Cells.SpecialCells(xlLastCell).Row For i = Еnd To 1 Step -1 If Rows(i).Text = "" Then Rows(i).Delete Next Next WS End Sub
Нет, я не переменную "Еnd" правил, а переменную "x" Заменил её на "WS", при этом задел первую букву в "Еnd" в четвертой строке, а так как был в английской раскладке - поставил Е английскую и сохранил пост А когда ты написал про это - вставил корректный код из файла, в котором я проверял работоспособность кода до того, как постить на форум
Нет, я не переменную "Еnd" правил, а переменную "x" Заменил её на "WS", при этом задел первую букву в "Еnd" в четвертой строке, а так как был в английской раскладке - поставил Е английскую и сохранил пост А когда ты написал про это - вставил корректный код из файла, в котором я проверял работоспособность кода до того, как постить на форумSerge_007