0

我有一个问题。我在工作簿中有值被读入数组。这些值来自 XML 列表,因此有时可以是数字或文本,如果它们是文本格式的数字(例如“1”),则需要将它们转换为数字格式,所以我将它们乘以 1。如果值例如,文本“LS”,我正在尝试使用错误处理程序将值保持为“LS”。

我开发了下面的代码:它可以工作一次,但下次我使用类似的方法(使用“Dummy2”)时,代码会产生“类型不匹配”错误。

    On Error GoTo Dummy1
    For i = 1 To nrows1 - 1
        If (Worksheets("Import").Cells(i + 1, 26) * 1 = "") Then
Dummy1:

            Table1(i, 1) = Worksheets("Import").Cells(i + 1, 26)
        Else
            Table1(i, 1) = Worksheets("Import").Cells(i + 1, 26) * 1
        End If
    Next
    On Error GoTo 0

在上面的代码之后,我也尝试了 Clearing Err,但没有成功。

请帮忙!

4

2 回答 2

1

您可以使用以下IsNumeric功能:

Sub test3()
Dim Test As Variant
Dim i As Long

For i = 1 To nrows1 - 1
Test = Worksheets("Import").Cells(i + 1, 26)
    If IsNumeric(Test) Then
        Table1(i, 1) = Test * 1
    Else
        Table1(i, 1) = Test
    End If
Next
End Sub
于 2013-08-23T02:37:33.547 回答
0

使用 VAL(Worksheets("Import").Cells(i + 1, 26)) 来确定它是否是数字。VAL 将为您提供“LS”的 0。

您可以尝试 TryParse 函数 - 但不确定它是否在您的 VBA 版本中可用

于 2013-08-23T02:31:29.253 回答