Переберите всю книгу и удалите строки с # N / A - PullRequest
2 голосов
/ 02 октября 2019

У меня есть рабочая тетрадь с 11 листами. Мне нужно удалить строки во всех листах, где появляется # N / A. Как мне поступить так?

Я написал некоторый код, см. Ниже, который позволяет мне удалять только те строки # N / A, которые появляются, когда мой файл Excel открыт для этой конкретной вкладки. Он не будет проходить по всей книге.

Sub RemoveErrorsLoop()

     Dim WS_Count As Integer
     Dim I As Integer

     ' Set WS_Count equal to the number of worksheets in the active
     ' workbook.
     WS_Count = ActiveWorkbook.Worksheets.Count

     ' Begin the loop.
     For I = 2 To WS_Count
         Cells.SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Delete
     Next I

End Sub

Мне нужен код, который будет перебирать все мои листы и удалять строки с # N / A. Спасибо за любую помощь!

1 Ответ

5 голосов
/ 02 октября 2019

Вы просто забыли использовать свое «я» в цикле:
, если вы просто добавите Sheets(I)., ваша строка будет работать на каждом листе рабочей книги.

Sub RemoveErrorsLoop()
         Dim WS_Count As Integer
         Dim I As Integer

         ' Set WS_Count equal to the number of worksheets in the active
         ' workbook.
         WS_Count = ActiveWorkbook.Worksheets.Count

         ' Begin the loop.
         For I = 1 To WS_Count
             Sheets(I).Cells.SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Delete
         Next I

End Sub

Я бы даже добавилобработчик ошибок, позволяющий коду работать, когда у вас нет # N / A на листе.

         For I = 1 To WS_Count
            On Error Resume Next
               Sheets(I).Cells.SpecialCells(xlCellTypeFormulas,xlErrors).EntireRow.Delete
            On Error GoTo 0
         Next I
...