Удалить все строки после определенной строки, найденной на другом листе - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь написать VBA, чтобы удалить все строки после определенного числа, найденного в моей книге.Например, my (определенный номер строки находится на листе 1 в ячейке B6) VBA удалит все строки на листе 2, начиная с номера строки, найденного на листе 1 B6.Это то, что я до сих пор, но, очевидно, не работает

Sub Button4_Click()
Worksheets("sheet 2").Rows($B$6 & ":" & Worksheets("sheet 2").Rows.Count).Delete
End Sub

1 Ответ

0 голосов
/ 23 января 2019

Строка

Worksheets("Sheet 2").Range("B" & Worksheets("Sheet 1").Range("B6") & ":B" & Worksheets("Sheet 2").Rows.Count).EntireRow.Delete

даст вам именно то, что вы просите, но вы должны спросить себя, действительно ли эффективно удалять более 1 000 000 строк.Можете ли вы определить последнюю использованную строку в Worksheets("Sheet 2"), используя метод (xlUp) или (xlDown), чтобы определить гораздо меньший диапазон для удаления?

Worksheets("Sheet 2").Range("B" & Worksheets("Sheet 1").Range("B6") & ":B" & Worksheets("Sheet 2").Range("B" & Rows.Count).End(xlUp).Row).EntireRow.Delete

Кроме того, судя по вашему использованию, ваша единственная цельудаление этих строк означает очистку содержимого, в этом случае использование .ClearContents вместо .Delete будет еще быстрее.

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