對於開發跨
多個平台
,擴充使用者 Office 體驗的解決方案感到興趣嗎? 請參閱新的
Office 增益集模型
。 與 VSTO 增益集和解決方案相比,Office 增益集的佔用空間較小,而且您可以使用幾乎任何網頁程式技術 (例如 HTML5、JavaScript、CSS3 和 XML) 來建立這些增益集。
Format
(
Expression
, [
Format
], [
FirstDayOfWeek
], [
FirstWeekOfYear
])
Format
函式語法具有以下幾個部分。
Format
會將
format
截斷為 257 個字元。
若您嘗試格式化而不指定格式
,
Format
會提供類似
Str
函式的功能,不過 Format 函式具有國別設定感知。 不過,使用
Format
函式將正數格式化成字串,不會包含保留給值符號的前置空格;使用
Str
函式來轉換的正數,則會保留前置空格。
如果您正要格式化未當地語系化的數值字串,應該使用使用者定義的數值格式,以確保您取得想要的外觀。
如果
Calendar
屬性設定值是
Gregorian
,且 [格式]
已指定日期格式,則提供的 [運算式]
必須是
Gregorian
。 如果 Visual Basic
Calendar
屬性設定為
Hijri
,則提供的
運算式
必須是
Hijri
。
如果行事曆為西曆,[格式運算式]
符號的意義維持不變。 如果月曆屬性為回曆,如果行事曆為回曆,所有的日期格式符號 (例如
dddd
、
mmmm
、
yyyy
) 仍具有相同的意義,但會套用回曆行事曆。 格式符號會維持英文;會產生文字顯示的符號 (如 AM 和 PM),則會顯示與該符號相關聯的字串 (英文或阿拉伯文)。 若行事曆是回曆,某些符號的範圍會有所變更。
這個範例會顯示
Format
函式的各種用法,使用具名格式和使用者定義格式,來格式化值。 針對日期分隔符號 (
/
)、時間分隔符號 (
:
) 和 AM / PM 常值,您的系統所顯示的實際輸出結果,是取決於執行程式碼的地區設定。 在開發環境中顯示時間和日期時,會使用程式碼地區設定的簡短時間格式和簡短日期格式。 當按照正在執行的程式碼顯示時,會使用系統地區設定的簡短時間格式和簡短日期格式,可能會與程式碼地區設定有所差異。 在此範例中,假設為英文/美國。
MyTime
和
MyDate
會使用目前的系統簡短時間設定和簡短日期設定,在開發環境中顯示。
Dim MyTime, MyDate, MyStr
MyTime = #17:04:23#
MyDate = #January 27, 1993#
' Returns current system time in the system-defined long time format.
MyStr = Format(Time, "Long Time")
' Returns current system date in the system-defined long date format.
MyStr = Format(Date, "Long Date")
MyStr = Format(MyTime, "h:m:s") ' Returns "17:4:23".
MyStr = Format(MyTime, "hh:mm:ss am/pm") ' Returns "05:04:23 pm".
MyStr = Format(MyTime, "hh:mm:ss AM/PM") ' Returns "05:04:23 PM".
MyStr = Format(MyDate, "dddd, mmm d yyyy") ' Returns "Wednesday, Jan 27 1993".
' If format is not supplied, a string is returned.
MyStr = Format(23) ' Returns "23".
' User-defined formats.
MyStr = Format(5459.4, "##,##0.00") ' Returns "5,459.40".
MyStr = Format(334.9, "###0.00") ' Returns "334.90".
MyStr = Format(5, "0.00%") ' Returns "500.00%".
MyStr = Format("HELLO", "<") ' Returns "hello".
MyStr = Format("This is it", ">") ' Returns "THIS IS IT".
使用者定義的數字格式運算式,可以擁有一到四個區段,由分號分隔。 如果格式的引數包含某一種具名數值格式,則只能允許一個區段。
如果您使用
"$#,##0;($#,##0)"
如果您在區段之間以分號相連,則會使用正數值的格式來列印遺漏的區段。 例如,下列的格式會使用第一個區段中的格式來顯示正數和負數的值,而如果值為零,則會顯示「零」。
"$#,##0;;\Z\e\r\o"
字串的格式運算式,可以擁有一個或兩個區段,由分號 (;) 分隔。
如果您使用
顯示日期和/或時間,例如 4/3/93 05:34 PM。 如果沒有分數部分,則只會顯示日期,例如,4/3/93。 如果沒有整數部分,則只會顯示時間,例如,05:34 PM。 日期的顯示是由系統設定所決定。
根據您系統的完整日期格式來顯示日期。
使用適合主應用程式語言版本的適中日期格式來顯示日期。
使用您系統的簡短日期格式來顯示日期。
使用您系統的完整時間格式來顯示時間;包括小時、分鐘、秒。
使用小時、分鐘和 AM/PM 指示項,以 12 小時制格式來顯示時間。
使用 24 小時制格式來顯示時間,例如 17:45。
下表列出預先定義的數值格式名稱。
(:)
時間分隔符號。 在某些地區設定中,其他字元可能會用來表示時間分隔符號。 當時間值已格式化時,時間分隔符號會分隔小時、分鐘和秒。 出結果中實際用作時間分隔符號的字元,是由系統設定所決定。
(/)
日期分隔符號。 在某些地區設定中,其他字元可能會用來表示日期分隔符號。 當日期值已格式化時,日期分隔符號會分隔日、月和年。 輸出結果中實際用作日期分隔符號的字元,是由系統設定所決定。
依照順序顯示日期為 ddddd
,並顯示時間為 ttttt
。 如果日期序號沒有分數部分,則只會顯示日期資訊;如果沒有整數部分,則只會顯示時間資訊。
將日期顯示為沒有前置零的數位 (1–31) 。
將日期顯示為前置零 (01–31) 的數位。
將日顯示為 Sun–Sat) (縮寫。 當地語系化。
以完整名稱顯示日 (星期日-星期六) 。 當地語系化。
ddddd
根據您系統的簡短日期格式設定,將日期顯示為完整日期 (包括日、月和年)。 預設的簡短日期格式是 m/d/yy
。
dddddd
根據您系統所辨識的完整日期格式設定來格式化,將日期序號顯示為完整日期 (包括日、月和年)。 預設的完整日期格式是 mmmm dd, yyyy
。
以數字顯示星期幾 (1 代表星期日到 7 代表星期六)。
將一年中的周顯示為數字 (1–54) 。
將月份顯示為沒有前置零的數位 (1–12) 。 如果 m
緊接在 h
或 hh
後面,則會顯示分鐘,而不是月份。
將月份顯示為前置零 (01–12) 的數位。 如果 m
緊接在 h
或 hh
後面,則會顯示分鐘,而不是月份。
將月份顯示為 Jan–Dec) (縮寫。 當地語系化。
在 1 月到 12 月) (以完整月份名稱顯示月份。 當地語系化。
將一年中的季度顯示為數字 (1-4) 。
將一年中的日期顯示為數字 (1–366) 。
將年份顯示為 2 位數的數位 (00–99) 。
將年份顯示為 4 位數的數位 (100–9999) 。
將小時顯示為沒有前置零的數位 (0–23) 。
將小時顯示為前置零 (00–23) 的數位。
將分鐘顯示為沒有前置零的數位 (0–59) 。
將分鐘顯示為前置零 (00–59) 的數位。
將第二個顯示為沒有前置零的數位 (0–59) 。
將第二個數字顯示為前置零 (00–59) 。
ttttt
使用由系統所辨識的時間格式所定義的時間分隔符號來格式化,將時間顯示為完整時間 (包括小時、分鐘和秒)。 如果選取前置零選項,且時間是在上午 10:00 或下午 10:00 之前,則會顯示前置零。預設時間格式為 h:mm:ss
。
AM/PM
使用 12 小時制,並且對任何中午之前的小時,顯示大寫的 AM;對任何中午到下午 11:59 之間的小時,則顯示大寫的 PM。
am/pm
使用 12 小時制,並且對任何中午之前的小時,顯示小寫的 am;對任何中午到下午 11:59 之間的小時,則顯示小寫的 pm。
使用 12 小時制,並且對任何中午之前的小時,顯示大寫的 A;對任何中午到下午 11:59 之間的小時,則顯示大寫的 P。
使用 12 小時制,並且對任何中午之前的小時,顯示小寫的 a;對任何中午到下午 11:59 之間的小時,則顯示小寫的 p。
使用 12 小時制,並顯示 AM 字串常值 ,如您的系統在中午之前的任何小時所定義;顯示系統所定義的 PM 字串常值,時間介於中午到下午 11:59 之間的任何小時。AMPM 可以是大寫或小寫,但顯示的字串大小寫會符合系統設定所定義的字串。 預設的格式是 AM/PM。 如果您的系統設定為 24 小時制,字串通常會設定為零長度的字串。
下表列出可用來建立使用者定義數值格式的字元。
(0)
數字預留位置。 顯示數字或零。 如果運算式有數字位在格式字串中出現 0 的位置,則顯示該字元;否則在該位置顯示零。如果格式運算式中,數字 (在小數點的任一邊) 的位數比零的位數還少,則顯示前置零或行尾零。 如果格式運算式中,數字在小數分隔符號右邊的位數比零的位數還多,將數字的小數位數四捨五入,以顯示所有位數的零。 如果格式運算式中,數字在小數分隔符號左邊的位數比零的位數還多,則顯示多餘的數字而不做修改。
(#)
數字預留位置。 會顯示數字或不顯示任何項目。 如果運算式有數字位在格式字串中出現 # 的位置,則顯示該字元;否則在該位置不顯示任何項目。 此符號的作用就像 0 數字預留位置,不同之處在於,如果在格式運算式中,數字在小數分隔符號任一邊的位數,與 # 字元的位數相同或更少,則不會顯示前置零或行尾零。
(.)
小數點預留位置。 在某些地區設定中,逗號會用作小數分隔符號。 小數點預留位置會決定小數分隔符號的左側和右側,要顯示多少位數字。 如果格式運算式中,這個符號的左邊只包含數字記號,則小於 1 的數字會以小數分隔符號開始。 若要顯示具有百分比值的前置零,請使用 0 作為小數點分隔符號左邊的第一個數字預留位置。 輸出結果中實際用作小數點預留位置的字元,會取決於您系統所辨識的 [數字格式]。
百分比預留位置。 運算式會乘以 100。 百分比字元 (%) 會插入其在格式字串中所出現的位置上。
(,)
千位分隔符號。 在某些地區設定中,句號會用作千位分隔符號。 在數字內小數分隔符號的左側有四位數或更多時,千位分隔符號會分隔千位數和百位數。 千位分隔符號的標準用法,是指定格式是否包含由數字預留位置括住的千位分隔符號 (0 或 #)。 兩個連續的千位分隔符號或緊接在小數分隔符號左邊的千位分隔符號, (是否指定小數點) 表示「將數位除以 1000,視需要四捨五入」。例如,您可以使用格式字串 「##0,」,將 1 億表示為 100。 小於 1 百萬的數字會顯示為 0。 兩個相鄰的千位分隔符號,若不是緊接在小數分隔符號左側,而是其他任何位置時,將視為只是指定千位分隔符號的用法。 輸出結果中實際用作千位分隔符號的字元,會取決於您系統所辨識的 [數字格式]。
(:)
時間分隔符號。 在某些地區設定中,其他字元可能會用來表示時間分隔符號。 當時間值已格式化時,時間分隔符號會分隔小時、分鐘和秒。 出結果中實際用作時間分隔符號的字元,是由系統設定所決定。
(/)
日期分隔符號。 在某些地區設定中,其他字元可能會用來表示日期分隔符號。 當日期值已格式化時,日期分隔符號會分隔日、月和年。 輸出結果中實際用作日期分隔符號的字元,是由系統設定所決定。
(E- E+ e- e+)
科學記號格式。 如果格式運算式中,在 E-、E+、e- 或 e+ 的右側,包含了至少一個數字預留位置 (0 或 #) 時,數字會以科學記號格式顯示,並在數字與其指數之間插入 E 或 e。 數字預留位置右側的數字,會決定指數中數字的位數。 使用 E- 或 e- 在負指數的旁邊加上減號。 使用 E+ 或 e+ 在負指數的旁邊加上減號,並在正指數的旁邊加上加號。
- + $ ( )
顯示常值字元。 若要顯示以上所列以外的字元,請在它前面加入反斜線 (\
),或以雙引號將其括住 (" ")。
(\)
顯示格式字串中的下一個字元。 若要顯示的字元,像常值字元一樣具有特殊意義,請在它前面加入反斜線 (\
)。 反斜線本身不會顯示。 使用反斜線等同於將後面的字元括在雙引號裡。 若要顯示反斜線,使用兩個反斜線 (\\
)。 無法顯示為常值字元的字元範例包括日期格式設定和時間格式設定字元 (、 c、d、h、m、n、p、q、s、t、w、y、/和 :) 、數值格式字元 (#、0、%、E、e、逗號和句號) ,以及字串格式化字元 (@、、 &< 、 > 和 !) 。
("ABC")
顯示雙引號 ("") 內的字串。 若要在程式碼內將字串包含在 [格式] 中,您必須使用 Chr(34) 來括住文字 (34 是引號 (") 的字元碼)。
函式 (Visual Basic for Applications)
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。