Как перейти к следующему блоку, если в выбранном диапазоне нет пустых ячеек? - PullRequest
0 голосов
/ 22 октября 2018

У меня есть следующий автоматически сгенерированный код для поиска 0 с в выбранном диапазоне столбцов (E), замены его пробелом, а затем поиска пробелов в этом столбце и удаления записей по строкам.

Cells.Replace What:="0", Replacement:="", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Columns("E:E").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.Delete

Я запускаю это на разных диапазонах, которые могут иметь или не иметь 0.Проблема в том, что если этого не произойдет, весь выбранный столбец E будет удален.Когда я делаю это вручную, я получаю сообщение об ошибке «Ячейки не найдены».Я не понимаю, когда я запускаю макрос.Я отключаю оповещения позже в макросе, но не раньше, чем запускаю этот блок.

Могу ли я получить предложения о том, как справиться с этой ошибкой?Если в выбранном диапазоне нет нулей, игнорировать следующую строку кода или что-то еще?

Заранее спасибо.!

1 Ответ

0 голосов
/ 22 октября 2018

Половинный случайный путь:

On Error Resume Next
'your one line code goes here'
On Error Goto 0
'the rest of your code goes here

Полный фрагмент кода, чтобы заставить его работать, плюс старайтесь не использовать select.

Dim WorkingRange As Range
Set WorkingRange = ThisWorkbook.Worksheets("Sheet1").Columns("E:E")

On Error Resume Next
WorkingRange.Replace What:="0", Replacement:="", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
WorkingRange.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
On Error GoTo 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...