Удалить все строки из точки на каждом листе - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь найти последнюю использованную строку в столбце A, что мне удалось сделать нормально, но когда я пытаюсь использовать это для удаления всех строк под ней, я получаю ошибку «Требуется объект».Есть идеи?

Я немного исследовал для каждого цикла XYZ, но я не могу достаточно хорошо обдумать его, чтобы он работал.

Sub Range_End_Method()
   Dim ws As Worksheet

   Dim lRow As Long
   lRow = Cells(Rows.Count, 1).End(xlUp).Row + 1

    For Each ws In ActiveBook

        ws.Rows(lRow & ":" & ws.Rows.Count).Delete

    Next ws
End Sub

Мои ожидания были бы для (при условии, что последней использованной строкой является 6), чтобы все элементы в строке 7 и ниже были удалены с листа.Мне удалось добраться до нужного ряда, но я не могу удалить его.

Ответы [ 2 ]

0 голосов
/ 06 мая 2019
Dim lRow As Long
lRow = Cells(Rows.Count, 1).End(xlUp).Row + 1

Приведенный выше код вернет последнюю использованную строку, что означает, что все остальные ячейки ниже этой в этом столбце будут пустыми.Я думаю, вам не нужно удалять пустые строки.

0 голосов
/ 06 мая 2019

Ошибка "Object Required" связана с опечаткой в вашем коде.
Просто замените ActiveBook на ActiveWorkbook, и оно исчезнет.

Другая ошибка заключается в том, что для циклического просмотра каждого листа в вашей книге необходимо использовать свойство .Sheets.

Это исправленный код:

Sub Range_End_Method()

Dim ws As Worksheet

   Dim lRow As Long
   lRow = Cells(Rows.Count, 1).End(xlUp).Row + 1

    For Each ws In ActiveWorkbook.Sheets

        ws.Rows(lRow & ":" & ws.Rows.Count).Delete

    Next ws
End Sub

Примечание : во избежание неправильной записи переменных не забывайте использовать Option Explicit в начале каждого модуля.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...