我需要比较宏
中两个单元格的内容 RC1 = 2.0
RC2 = 2
我正在使用if(RC1=RC2,"''","x")
为上述输入打印x
但2.0和2相同,在这种情况下我需要''
,请建议
答案 0 :(得分:1)
你失败的代码'建议你只使用一个公式:
if(RC1=RC2,"''","x")
如果您对使用公式测试它们感到满意,可以使用:
IF(VALUE(RC1)=VALUE(RC2),"''","x")
请注意,空白单元格的VALUE
为0(零),因此空单元格将与包含0.00
答案 1 :(得分:0)
首先
您正在尝试比较两种不同的数据类型,假设一个是integer,它没有十进制值,另一个是double,带有小数。
我建议你更好地了解data types in VBA。
因此,对于CDbl()
的两个单元格,我们需要convert the types到同一个单位才能将它们转换为double
。简而言之,由于integers
是doubles
的更简单形式,我们将使用更完整的两种类型。
比较类型的代码
Sub COMPARING_TYPES()
Dim a As Double, b As Double
' Let's assume the both values are numeric
a = CDbl(Cells(1, 1))
b = CDbl(Cells(2, 1))
If a = b Then
' Other code to execute when the values are matching
End If
End Sub
这都是考虑你想要比较VBA代码中的数字。