проверьте, содержит ли ячейка #na

#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