簡體   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