在 Excel VBA 中使用數字格式

Glen Alfaro 2023年1月30日 2022年5月18日
  1. 在數值 VBA 上實現 NumberFormat 屬性
  2. 獲取 VBA 範圍使用的 NumberFormat 型別
在 Excel VBA 中使用數字格式

數字在我們的日常生活中以不同的形式出現。我們有日期、價格、百分比、分數、小數等。它們可能看起來都不同,但它們都表示一個值。

與 Excel 相同,我們可以處理不同格式的數字。我們可以在處理時間和日期時使用 DateTime 資料型別,而在處理百分比時我們可以使用 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