5

filaExcelの値を含むフルラインの変数があります

問題は、Excelで私が持っている場合#N/A、VBAはその値を。のように取るということですError 2042

その値をに割り当ててエラーvalor を生成することはできません。この時点まではすべて問題ありません。ループOn Error Goto内の次の反復に進むようにを定義しようとしていますが、VBAがエラーを処理しない理由がわかりませんFor

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 に答える