Vba 使用“转换为数字”区分数字和单词
我正在vba中运行一个vlookup,它返回一些错误。有些是由于缺少值(这些值应保持为#N/A)造成的,有些是由于值未转换为数字(这些值需要固定)。但是,当我运行下面的代码时,它会将数字和字母转换为数值,并在不应执行任何操作时返回#VALUE。我需要一种方法来区分数字和任何带有字母的值。在下面的示例中,代码应该循环,跳过TRD4并将9501转换为一个数字Vba 使用“转换为数字”区分数字和单词,vba,Vba,我正在vba中运行一个vlookup,它返回一些错误。有些是由于缺少值(这些值应保持为#N/A)造成的,有些是由于值未转换为数字(这些值需要固定)。但是,当我运行下面的代码时,它会将数字和字母转换为数值,并在不应执行任何操作时返回#VALUE。我需要一种方法来区分数字和任何带有字母的值。在下面的示例中,代码应该循环,跳过TRD4并将9501转换为一个数字 L26 BW VR7F BW TRD4 #N/A TRD4 #N/A 9501 #N/A XDTM BC
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
如果您包含完整的代码,例如
v
声明为什么,is单元格(a,9)
您列出的值,例如L26,以及H&a
中的公式,这也会有所帮助
使用您提供的示例值运行快速检查,您可以在循环中使用IsNumeric
,以测试值是否仅由数字组成或还包含文本。即使该值以文本形式存储在单元格中,这也会起作用。要将文本值转换为数字,可以使用CInt
或任意数量的
所以,如果你只想计算它是否是一个数字而忽略文本,你可以做类似的事情
For a = 2 to LCell2 Step 1
If IsNumeric(Cells(a,9)) then
Cells(a,8).Value = Evaluate("H" & a)
End If
Next a
不幸的是,这将不起作用,因为数字被存储为文本,操作将不得不区分任何只包含数字的文本值和包含数字的字母。其目的是将数字转换为数值。