2016-01-11 3 views
3

Я нашел много дискуссий о том, как это сделать в Excel, но моя цель - захватить REF! ошибка в VBA, а не в самом Excel. Является ли это возможным ?Как проверить, что ячейка Excel содержит REF! ошибка в VBA

+0

Он будет содержать значение ошибки. например activecell.Value = Ошибка 2042 для # N/A –

ответ

4
If cell.Value = CVErr(xlErrRef) Then 
    ... 
End If 
+0

Что произойдет, если 'cell' пуст? – MikeD

2
Sub CheckRef() 
Dim CheckRange As Range, CheckCell As Range 

    Set CheckRange = [A1:D10]    ' as per app 

    For Each CheckCell In CheckRange 
    If IsError(CheckCell) And _ 
     CVErr(CheckCell) = CVErr(2023) Then ' 2023 --> xlErrRef 
      MsgBox ("#REF! in " & CheckCell.AddressLocal) 
      Exit Sub      ' exit after first #REF! found 
     End If 
    Next CheckCell 
End Sub 

пример

  • введите "= 1/0" в Б2 создать ошибку, отличную от "#REF!"
  • введите 1 в B4, B5
  • ввести "= B4 + B5" в B7
  • удаления строки 4
  • выполнения Sub CheckRef()

enter image description here

+2

Что произойдет, если 'CheckCell' содержит номер' 2023'? – GSerg

+1

ahh ... умный вопрос ... спасибо за указание ... в этом случае мы обнаруживаем ложное положительное ... поэтому нам нужно добавить проверку на 'IsError (CheckCell)' ... изменение ответа – MikeD

 Смежные вопросы

  • Нет связанных вопросов^_^