在 Excel VBA 中使用數字格式
Glen Alfaro
2023年1月30日
VBA
VBA Number Format
數字在我們的日常生活中以不同的形式出現。我們有日期、價格、百分比、分數、小數等。它們可能看起來都不同,但它們都表示一個值。
與 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
Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe