比较VBA中两个细胞的含量

时间:2017-03-30 09:57:25

标签: excel-vba vba excel

我需要比较宏

中两个单元格的内容

RC1 = 2.0
RC2 = 2

我正在使用if(RC1=RC2,"''","x")为上述输入打印x但2.0和2相同,在这种情况下我需要'',请建议

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。简而言之,由于integersdoubles的更简单形式,我们将使用更完整的两种类型。

比较类型的代码

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代码中的数字。