存储#VALUE! #NUM! #REF!在变量

时间:2010-05-05 16:10:46

标签: excel vba error-handling excel-vba

这是我正在尝试做的简单版本。 说我知道单元格(1,1)中有错误,而且我知道它是#num!,#ref!或#value!,我希望能够将相应的错误消息存储在变量中,因此我可以将其打印到不同的工作表。 这是我尝试过的,但显然失败了。

Sub FindAndPrintErrors
dim Store as string
    If IsError(Range("A1"))) = True Then
        Store = Range("A1").value 'it breaks here'
    end if 
    range("B1") = Store
end sub

我知道我可以这样做,但我想知道是否有更好的方法。

Sub FindAndPrintErrors2
    dim Store
        If IsError(Range("A1"))) = True Then
            temp = Range("A1").value 'it breaks here'
        if temp = "error 2029" then
            store = "#num!"
        ' and so on'
        end if 
        range("B1") = Store
    end sub

2 个答案:

答案 0 :(得分:4)

而不是.value尝试.Text。这可以存储在您的变量中。

?cells(1,2).text
#N/A
?cells(1,2).value
Error 2042
?cells(2,2).text
#REF!
?cells(2,2).value
Error 2023

答案 1 :(得分:1)

只需创建Variant类型的变量即可。然后你可以输入单元格中的任何内容,包括错误值。

稍微详细说明,您的代码可能如下所示:

Public Sub copyFromCellIfError()
    Dim v
    v = [q42]

    If IsError(v) Then
        [z99] = v
    End If
End Sub

假设你想要复制实际的错误值,而不是它的字符串表示。