Я читаю ячейку из электронной таблицы, которая должна быть числом, но может или не может быть #N/A
.В прошлом, если значение ячейки было #N/A
, я полагаю, что будет вызвана подпрограмма On Error Goto.
Установка значения ячейки в ноль не будет работать в этом приложении.Если формула ячейки возвращает #N/A
, мне нужно, чтобы она оставалась #N/A
вместо того, чтобы обнулять ее.
Option Explicit
Dim Piecerate_Labor as Single
Dim ErrorList() as Variant
Dim UniqueID as String
Dim CurrentStyleError as Boolean
'Other code removed
Sub GetCostInfo()
On Error GoTo Errorhandler
'Other code removed
With Workbooks("Cost_Master.xlsm").Worksheets("Cost")
Piecerate_Labor = .Range("Piecerate_Labor_Cost").Value
'Other code removed
End With
Exit Sub
Errorhandler:
ErrorCount = ErrorCount + 1
ErrorList(ErrorCount, 1) = UniqueID
'Other Coe Removed Workbooks("Cost_Master.xlsm").Worksheets("Cost").Range("P565").Value 'trap labor issue
CurrentStyleError = True
End Sub
Разрывы кода в строке Piecerate_Labor =.Range("Piecerate_Labor_Cost").Value
с ошибкой времени выполнения "13": Ошибка несоответствия типовпотому что Piecerate_Labor is Single
и значение .Range("Piecerate_Labor_Cost")
равно #N/A
.Прежде чем я верю, что это вызовет On Error Goto Errorhandler.Почему ошибка несоответствия типов не вызывает строку «Ошибка при переходе» - «Обработчик ошибок»?Кажется, мне не хватает чего-то довольно простого.