5

我有一个fila带有 Excel 值的整行变量

问题是当我在 Excel 中时#N/A,VBA 采用类似Error 2042.

我无法将该值分配给valor 产生错误。直到此时一切正常,现在我正在尝试定义 aOn 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 
4

1 回答 1

10

这不是 VBA 错误 - 因此错误处理不会捕获它。要检测此问题IsError,请在写入阵列之前使用

下面的简单代码处理此测试的错误 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
于 2012-12-07T11:17:35.580 回答