用excel 2007中的VBA将存储在string中的数字与包含格式为文本的数字的单元格进行比较
我试图比较一个string(可能是数字和字母的组合,或者只是数字)到格式为文本(其内容可能是数字和字母的组合,或者只是数字)的单元格。 我发现,当它将具有字母和数字的string与具有匹配内容的单元格进行比较时,它能够正确识别它们是否相同。 但是,当string只包含数字与包含相同内容的单元格进行比较时,它不会将其识别为匹配。 我的代码:
If location.Value = identifier then msgbox "Matching"
identifier
是一个string, location
的单元格被格式化为文本。
我也发现,如果我改用:
Dim ID_holder As String ID_holder = location.value If ID_holder = identifier then msgbox "Matching"
那么它就能够识别两个数字(存储为string)是否相等。 是否有避免使用额外的步骤使用一个string来保存location.value
? 如果有人知道为什么我原来的方法失败了,也将不胜感激。 谢谢。
尝试这个。 这将确保无论location
的价值是什么,比较作为一个string。
Dim ID_holder As String ID_holder = cstr(location.value) If ID_holder = cstr(identifier) then msgbox "Matching"
尝试If CStr(location.Value) = CStr(identifier) then msgbox "Matching"
– 这种方式,你总是比较一个stringstring。
您可以使用FormulaR1C1而不是Value进行比较。
Sub Macro1() Set a = Range("A1") Set b = Range("A2") If a.FormulaR1C1 = "123" Then MsgBox "a: Match" If b.FormulaR1C1 = "abc" Then MsgBox "b: Match" End Sub