使用Convert to Number区分数字和单词

时间:2014-07-17 01:00:23

标签: vba

我在vba中运行vlookup会返回一些错误。有些是由于缺少值(这些应该保持#N / A),有些是由于值未转换为数字(这些需要修复)。但是,当我运行下面的代码时,它将数字和字母转换为数值,并在它什么也不做的时候返回#VALUE。我需要一种方法来区分数字和任何带有字母的值。在下面的示例中,代码应该循环,跳过TRD4并将9501转换为数字。

L26     BW
VR7F    BW
TRD4    #N/A
TRD4    #N/A
9501    #N/A
XDTM    BC
UDDP    TE

For a = 2 To LCell2 Step 1
    v = Cells(a, 9).Value
    If IsError(v) Then
        Cells(a, 8).Value = Evaluate("H" & a)
    End If
Next a

1 个答案:

答案 0 :(得分:1)

如果您包含完整代码(例如v声明的内容,Cells(a,9)列出的值(如L26)以及H & a中的公式是什么,也会有所帮助

使用您提供的示例值快速检查,您可以在循环中使用IsNumeric来测试值是仅由数字组成还是包含文本。即使值作为文本存储在单元格中,这也将起作用。要将文本值转换为数字,您可以使用CInt或任意数量的conversion functions available

因此,如果您只想评估它是否为数字并忽略文本,您可以执行与

类似的操作
For a = 2 to LCell2 Step 1
    If IsNumeric(Cells(a,9)) then
        Cells(a,8).Value = Evaluate("H" & a)
    End If
Next a