繁体   English   中英

使用VBA比较Excel中两个单元格的数字格式

[英]Compare number formatting of two cells in excel using vba

我的问题:

单元格A1:值= 12,数字属性为常规。 单元格A2:值= 12,并且number属性是带有2个小数点的数字,因此该数字显示为“ 12.00”

如何在VBA使用宏或以其他任何方式验证两个单元格是否具有相同的number属性?

您可以比较它们的NumberFormat属性:

If Range("A1").NumberFormat = Range("A2").NumberFormat Then

但是,可以将许多不同的格式(包括自定义格式)应用于单元格,以使它们看起来相同,而不必具有完全相同的NumberFormat值。

这意味着比较格式永远不会像比较值那样可靠。 (需要比较格式也很不寻常。)

您可以使用NumberFormat方法。

使用此代码,A1中的12 (常规格式)和B1中的12 (格式12.00)

Option Explicit
Sub Stuff()

    MsgBox Range("A1").NumberFormat
    MsgBox Range("B1").NumberFormat

End Sub

将分别返回消息“常规”和“ 0.00”。

所以用

If Range("A1").NumberFormat = Range("B1").NumberFormat Then
    -- do stuff here
End If

会告诉您它们是否相等。

听起来您真的很关心单元格的 .NumberFormat属性只是掩盖了该在视觉上对电子表格用户的显示方式。

因此,您可以轻松地对两个进行等效测试,例如:

Sub Test()

MsgBox [A1].Value = [A2].Value

End Sub

或者,您可以在工作表公式中执行此操作:

=A1=A2

该公式应返回TrueFalse ,并应忽略单元格的formatting

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM