#vba
Вопрос:
Я пытаюсь использовать приведенное ниже, чтобы увидеть, содержит ли ячейка #na, а затем очистить содержимое. Но продолжайте получать сообщение об ошибке
For k = 17 To i
If WorksheetFunction.IsNA.sh.Range("G" amp; k) Then
sh.Range("D:" amp; k).Clear
End If
Next k
Комментарии:
1.
WorksheetFunction.IsNA(sh.Range("G" amp; k))
2. Какую ошибку вы получаете? Комментарий @Nathan_Sav, скорее всего, верен.
3. ошибка, определенная приложением или объектом
Ответ №1:
Вы также можете сделать это быстрее без цикла:
sh.range("G17:G" amp; i).SpecialCells(xlCellTypeConstants, xlerrors).Clear
Если диапазон содержит формулы, а не константы, просто замените
xlCellTypeConstants
Автор: xlCellTypeFormulas
Однако вы не сможете указать конкретные ошибки.
Комментарии:
1. это работает, но по какой-то причине выдает ошибку во время выполнения
2. ладно, я понимаю почему. для всех ячеек, в которых нет NA, это приведет к ошибке
3. @техническим преподавателям не нужно зацикливаться ! Сделайте это по всему диапазону сразу. Намного быстрее
Ответ №2:
Попробуйте этот код:
For k = 17 To i
If WorksheetFunction.IsNA(sh.Range("G" amp; k).Value) Then
sh.Range("D" amp; k).Clear
End If
Next k