我有一个fila带有Excel值的完整行的变量
问题是,当我在Excel中#N/A,VBA采用该值时Error 2042.
我无法将该值赋给valor 并产生错误.在此之前一切正常,现在我正在尝试定义一个On Error Goto转到循环中的下一个迭代For,但我不知道为什么VBA不处理错误.
Do While Not IsEmpty(ActiveCell)
txt = ActiveCell.Value2
cell = ActiveCell.Offset(0, 1).Value2
fila = Range("C20:F20")
For j = 1 To UBound(fila, 2)
On Error GoTo Siguiente
If Not IsEmpty(fila(1, j)) Then
valor = fila(1, j)
cmd = Cells(1, j + 2).Value2
devolver = function1(cmd, txt, cell, valor)
arrayDevolver(p) = devolver
p = p + 1
End If
Siguiente:
Next
Loop
Run Code Online (Sandbox Code Playgroud)
bre*_*tdj 10
这不是VBA错误 - 因此错误处理将无法捕获它.要IsError在写入阵列之前检测此问题
下面的简单代码处理此测试的Error 2042问题
Sub Test()
Dim varIn As Variant
[a1].FormulaR1C1 = "=NA()"
If IsError([a1].Value2) Then
varIn = "skip record"
Else
varIn = [a1].Value2
End If
End Sub
Run Code Online (Sandbox Code Playgroud)