在 Excel VBA 中使用數字格式
Glen Alfaro
2023年1月30日
2022年5月18日
數字在我們的日常生活中以不同的形式出現。我們有日期、價格、百分比、分數、小數等。它們可能看起來都不同,但它們都表示一個值。
與 Excel 相同,我們可以處理不同格式的數字。我們可以在處理時間和日期時使用 Date
和 Time
資料型別,而在處理百分比時我們可以使用 Percent
。
本文將演示 NumberFormat
屬性,以幫助我們在 Excel VBA 實踐中充分利用和處理數字。
在數值 VBA 上實現 NumberFormat
屬性
本節使用 NumberFormat
屬性更改單元格中的數字格式。
語法:
Range.NumberFormat = [FormatCodes]
引數:
Range |
要格式化的範圍 |
[FormatCodes] |
預先確定的字串,它將表示要使用的數字格式型別。 |
[格式程式碼]
矩陣:
格式名稱 | 格式程式碼 | 例子 | 描述 |
—————– | ——————————————————– | —————– | —————————————————— |
常規 | General |
1234567.89 |
顯示沒有特定格式的數字 |
貨幣 | $#,##0.00 |
$1,234,567.89 |
顯示為一般貨幣價值 |
數字 | 0 |
1234567.89 |
格式將完全按原樣顯示數字 |
科學計數 | 0.00E+00 |
1.23E+06 |
將數字轉換為指數格式 |
會計 | _($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_) |
$123.00 |
display the number used in 會計 |
日期 | m/d/yy |
11/23/2021 |
顯示日期和時間序列號 |
時間 | [$-F400]h:mm:ss am/pm |
12:00:03 上午 |
顯示日期和時間序列號 |
百分比 | 0.00% |
5.23 % |
以百分比形式顯示值 |
分數 | # ?/? |
1/4 |
將值顯示為小數形式 |
特殊 | ;; |
000-00-0000 |
用於列表和資料庫值的格式 |
Sheet1
虛擬工作表將是以下示例程式碼中所有示例中使用的引用值。
表 1:
| A | B | C |
1| 1234.56 | 11/23/2021 | 93249812 |
2| 5 | 0.00004 | 0.25 |
下面的程式碼塊將輸出 General
格式:
Sub FormatGeneral()
Range("A1").NumberFormat = "General"
Debug.Print Range("A1").Text
End Sub
FormatGeneral
輸出:
1234.56
下面的程式碼塊將輸出 Currency
格式:
Sub FormatCurrency()
Range("C1").NumberFormat = "$#,##0.00"
Debug.Print Range("C1").Text
End Sub
通用
輸出:
$93,249,812.00
下面的程式碼塊將輸出科學
格式:
Sub FormatScientific()
Range("C1").NumberFormat = "0.00E+00"
Debug.Print Range("C1").Text
End Sub
FormatScientific
輸出:
9.32E+07
下面的程式碼塊將輸出 Accounting
格式:
Sub FormatAccounting()
Range("A1").NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
Debug.Print Range("A1").Text
End Sub
FormatAccounting
輸出:
$ 1,234.56
下面的程式碼塊將輸出日期
格式:
Sub FormatDate()
Range("A2").NumberFormat = "m/d/yy"
Debug.Print Range("A2").Text
End Sub
FormatDate
輸出:
1/5/00
下面的程式碼塊將輸出時間
格式:
Sub FormatTime()
Range("B2").NumberFormat = "$-F400]h:mm:ss am/pm"
Debug.Print Range("B2").Text
End Sub
FormatTime
輸出:
12:00:03 AM
下面的程式碼塊將輸出百分比
格式:
Sub FormatPercentage()
Range("A1").NumberFormat = "0.00%"
Debug.Print Range("A1").Text
End Sub
FormatPercentage
輸出:
123456.00%
下面的程式碼塊將輸出 Fraction
格式:
Sub FormatFraction()
Range("C2").NumberFormat = "# ?/?"
Debug.Print Range("C2").Text
End Sub
FormatFraction
輸出:
1/4
獲取 VBA 範圍使用的 NumberFormat
型別
我們在上面的例子中返回了指定範圍的格式化值。我們將在本節中獲取指定範圍內使用的格式型別。
語法:
Range.NumberFormat
引數:
Range |
獲取格式型別的單元格範圍 |
仍然參考 Sheet1
,下面的示例程式碼塊將演示返回指定範圍使用的格式型別。
Sub GetFormattingType()
Debug.Print Range("B1").NumberFormat
End Sub
GetFormattingType
輸出:
m/d/yyyy