Format 函式(Visual Basic for Applications) | Microsoft Docs

文章推薦指數: 80 %
投票人數:10人

本文內容 · 語法 · 設定 · 註解 · 日期符號 · 時間符號 · 範例 · 不同數值的不同格式 · 不同字串值的不同格式 ... 跳到主要內容 已不再支援此瀏覽器。

請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。

下載MicrosoftEdge 其他資訊 目錄 結束焦點模式 儲存 編輯 共用 Twitter LinkedIn Facebook 電子郵件 WeChat 目錄 Format函式 發行項 06/07/2021 o 此頁面有所助益嗎? 請為您的體驗評分 Yes No 還有其他意見反應嗎? 系統會將意見反應傳送給Microsoft:按下[提交]按鈕,您的意見反應將用來改善Microsoft產品和服務。

隱私權原則。

送出 謝謝。

本文內容 傳回Variant(字串),包含根據格式運算式中所包含的指示格式化的運算式。

注意 對於開發跨多個平台,擴充使用者Office體驗的解決方案感到興趣嗎?請參閱新的Office增益集模型。

與VSTO增益集和解決方案相比,Office增益集的佔用空間較小,而且您可以使用幾乎任何網頁程式技術(例如HTML5、JavaScript、CSS3和XML)來建立這些增益集。

語法 Format(Expression,[Format],[FirstDayOfWeek],[FirstWeekOfYear]) Format函式語法具有以下幾個部分。

部分 描述 運算式 必要。

任何有效運算式。

Format 選用。

有效的具名或使用者定義格式運算式。

FirstDayOfWeek 選用。

常數會指定每週的第一天。

FirstWeekOfYear 選用。

此常數會指定每年的第一週。

設定 _firstdayofweek_引數具有這些設定。

常數 值 描述 vbUseSystem 0 使用NLSAPI設定。

vbSunday 1 星期日(預設值) vbMonday 2 星期一 vbTuesday 3 星期二 vbWednesday 4 星期三 vbThursday 5 星期四 vbFriday 6 星期五 vbSaturday 7 星期六 Firstweekofyear引數具有這些設定。

常數 值 描述 vbUseSystem 0 使用NLSAPI設定。

vbFirstJan1 1 從1月1日發生當週開始(預設值)。

vbFirstFourDays 2 從年度中至少有四天的第一週開始。

vbFirstFullWeek 3 從該年第一個完整的一週開始。

註解 若要格式化 執行 數字 使用預先定義的具名數值格式,或建立使用者定義數值格式。

日期和時間 使用預先定義的具名的日期/時間格式,或建立使用者定義日期/時間格式。

日期和時間序號 使用日期和時間格式或數值格式。

字串 建立您自己的使用者定義字串格式。

Format會將format截斷為257個字元。

若您嘗試格式化而不指定格式__,Format會提供類似Str函式的功能,不過Format函式具有國別設定感知。

不過,使用Format函式將正數格式化成字串,不會包含保留給值符號的前置空格;使用Str函式來轉換的正數,則會保留前置空格。

如果您正要格式化未當地語系化的數值字串,應該使用使用者定義的數值格式,以確保您取得想要的外觀。

注意 如果Calendar屬性設定值是Gregorian,且[格式]__已指定日期格式,則提供的[運算式]__必須是Gregorian。

如果VisualBasicCalendar屬性設定值是Hijri,則提供的[運算式]__必須是Hijri。

如果行事曆為西曆,[格式運算式]__符號的意義維持不變。

如果月曆屬性為回曆,如果行事曆為回曆,所有的日期格式符號(例如dddd、mmmm、yyyy)仍具有相同的意義,但會套用回曆行事曆。

格式符號會維持英文;會產生文字顯示的符號(如AM和PM),則會顯示與該符號相關聯的字串(英文或阿拉伯文)。

若行事曆是回曆,某些符號的範圍會有所變更。

日期符號 符號 範圍 d 1-31(月份日期,沒有前置零) dd 01-31(一個月中的日,具有前置零) w 1-7(星期幾,從星期日=1開始) ww 1-53(一年中的週,沒有前置零;第1週從1月1日開始) m 1-12(一年中的月,沒有前置零;從1月=1開始) mm 01-12(一年中的月,具有前置零;從1月=01開始) mmm 顯示縮寫月份名稱(回曆月份名稱沒有任何縮寫) mmmm 顯示完整月份名稱 y 1-366(一年中的日) yy 00-99(年度的最後兩位數) yyyy 100-9999(三或四位數的年度) 時間符號 符號 範圍 h 0-23(附加"AM"或"PM"的1-12)(一天中的鐘點,沒有前置零) hh 00-23(附加"AM"或"PM"的01-12)(一天中的鐘點,具有前置零) n 0-59(一小時的分鐘,沒有前置零) nn 00-59(一小時內的分鐘,具有前置零) m 0-59(一小時的分鐘,沒有前置零)。

只要前面加上h或hh mm 00-59(一小時內的分鐘,具有前置零)。

只要前面加上h或hh s 0-59(一分鐘的秒鐘,沒有前置零) ss 00-59(一分鐘內的秒鐘,具有前置零) 範例 這個範例會顯示Format函式的各種用法,使用具名格式和使用者定義格式,來格式化值。

針對日期分隔符號(/)、時間分隔符號(:)和AM/PM常值,您的系統所顯示的實際輸出結果,是取決於執行程式碼的地區設定。

在開發環境中顯示時間和日期時,會使用程式碼地區設定的簡短時間格式和簡短日期格式。

當按照正在執行的程式碼顯示時,會使用系統地區設定的簡短時間格式和簡短日期格式,可能會與程式碼地區設定有所差異。

在此範例中,假設為英文/美國。

MyTime和MyDate會使用目前的系統簡短時間設定和簡短日期設定,在開發環境中顯示。

DimMyTime,MyDate,MyStr MyTime=#17:04:23# MyDate=#January27,1993# 'Returnscurrentsystemtimeinthesystem-definedlongtimeformat. MyStr=Format(Time,"LongTime") 'Returnscurrentsystemdateinthesystem-definedlongdateformat. MyStr=Format(Date,"LongDate") MyStr=Format(MyTime,"h:m:s")'Returns"17:4:23". MyStr=Format(MyTime,"hh:mm:ssam/pm")'Returns"05:04:23pm". MyStr=Format(MyTime,"hh:mm:ssAM/PM")'Returns"05:04:23PM". MyStr=Format(MyDate,"dddd,mmmdyyyy")'Returns"Wednesday,Jan271993". 'Ifformatisnotsupplied,astringisreturned. MyStr=Format(23)'Returns"23". 'User-definedformats. 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"THISISIT". 不同數值的不同格式 使用者定義的數字格式運算式,可以擁有一到四個區段,由分號分隔。

如果格式的引數包含某一種具名數值格式,則只能允許一個區段。

如果您使用 其結果是 只有一個區段 格式運算式會套用到所有的值。

兩個區段 第一個區段會套用到正值和零,第二個會套用到負值。

三個區段 第一個區段會套用到正值,第二個會套用到負值,而第三個會套用到零。

四個區段 第一個區段會套用到正值,第二個會套用到負值,第三個會套用到零,而第四個會套用到Null值。

"$#,##0;($#,##0)" 如果您在區段之間以分號相連,則會使用正數值的格式來列印遺漏的區段。

例如,下列的格式會使用第一個區段中的格式來顯示正數和負數的值,而如果值為零,則會顯示「零」。

"$#,##0;;\Z\e\r\o" 不同字串值的不同格式 字串的格式運算式,可以擁有一個或兩個區段,由分號(;)分隔。

如果您使用 其結果是 只有一個區段 格式會套用到所有的字串資料。

兩個區段 第一個區段會套用到到字串資料,第二個會套用到Null值和零長度字串("")。

具名的日期/時間格式 下表列出預先定義的日期與時間格式名稱。

格式名稱 描述 一般日期 顯示日期和/或時間,例如4/3/9305:34PM。

如果沒有分數部分,則只會顯示日期,例如,4/3/93。

如果沒有整數部分,則只會顯示時間,例如,05:34PM。

日期的顯示是由系統設定所決定。

完整日期 根據您系統的完整日期格式來顯示日期。

適中日期 使用適合主應用程式語言版本的適中日期格式來顯示日期。

簡短日期 使用您系統的簡短日期格式來顯示日期。

完整時間 使用您系統的完整時間格式來顯示時間;包括小時、分鐘、秒。

適中時間 使用小時、分鐘和AM/PM指示項,以12小時制格式來顯示時間。

簡短時間 使用24小時制格式來顯示時間,例如17:45。

具名的數值格式 下表列出預先定義的數值格式名稱。

格式名稱 描述 通用數字 顯示沒有千位分隔符號的數字。

貨幣 顯示具有千位分隔符號的數字(若適用);在小數分隔符號的右邊顯示兩位數。

根據系統的地區設定來輸出。

固定 在小數分隔符號的左邊,顯示至少一位數;在小數分隔符號的右邊顯示兩位數。

Standard 顯示具有千位分隔符號的數字;在小數分隔符號的左邊,顯示至少一位數;在小數分隔符號的右邊顯示兩位數。

百分比 顯示乘以100並在右邊附加百分比符號(%)後的數字;永遠在小數分隔符號的右邊顯示兩位數。

科學記號 使用標準科學記號標記法。

Yes/No 如果數字是0,則顯示[否];否則,顯示[是]。

True/False 如果數字是0,則顯示False;否則,顯示True。

開/關 如果數字是0,則顯示[關];否則,顯示[開]。

使用者定義的字串格式 您可以使用任何下列字元來建立字串的格式運算式。

字元 描述 @ 字元預留位置。

顯示字元或空格。

如果字串有字元位在格式字串中出現@符號的位置,則顯示該字元;否則在該位置顯示空格。

除非在格式字串中有驚嘆號字元(!),否則預留位置是由右至左填入。

& 字元預留位置。

顯示字元或不顯示任何項目。

如果字串有字元位在格式字串中出現&符號的位置,則顯示該字元;否則在該位置不顯示任何項目。

除非在格式字串中有驚嘆號字元(!),否則預留位置是由右至左填入。

< 強制小寫。

以小寫格式顯示所有字元。

> 強制大寫。

以大寫格式顯示所有字元。

! 強制由左到右填入預留位置。

依預設是由右至左填入預留位置。

使用者定義的日期/時間格式 下表列出可用來建立使用者定義日期/時間格式的字元。

字元 描述 (:) 時間分隔符號。

在某些地區設定中,其他字元可能會用來表示時間分隔符號。

當時間值已格式化時,時間分隔符號會分隔小時、分鐘和秒。

出結果中實際用作時間分隔符號的字元,是由系統設定所決定。

(/) 日期分隔符號。

在某些地區設定中,其他字元可能會用來表示日期分隔符號。

當日期值已格式化時,日期分隔符號會分隔日、月和年。

輸出結果中實際用作日期分隔符號的字元,是由系統設定所決定。

c 依照順序顯示日期為ddddd,並顯示時間為ttttt。

如果日期序號沒有分數部分,則只會顯示日期資訊;如果沒有整數部分,則只會顯示時間資訊。

d 將日顯示為沒有前置零的數字(1–31)。

dd 將日顯示為具有前置零的數字(01–31)。

ddd 將日顯示為縮寫(週日–週六)。

當地語系化。

dddd 將日顯示為完整的名稱(星期日–星期六)。

當地語系化。

ddddd 根據您系統的簡短日期格式設定,將日期顯示為完整日期(包括日、月和年)。

預設的簡短日期格式是m/d/yy。

dddddd 根據您系統所辨識的完整日期格式設定來格式化,將日期序號顯示為完整日期(包括日、月和年)。

預設的完整日期格式是mmmmdd,yyyy。

w 以數字顯示星期幾(1代表星期日到7代表星期六)。

ww 以數字顯示一年中的週(1–54)。

m 將月份顯示為沒有前置零的數字(1–12)。

如果m緊接在h或hh後面,則會顯示分鐘,而不是月份。

mm 將月份顯示為具有前置零的數字(01–12)。

如果m緊接在h或hh後面,則會顯示分鐘,而不是月份。

mmm 將月份顯示為縮寫(Jan–Dec)。

當地語系化。

mmmm 將月份顯示為完整的月份名稱(一月–十二月)。

當地語系化。

q 以數字顯示一年中的季度(1–4)。

y 以數字顯示一年中的第幾天(1–366)。

yy 將年份顯示為2位數的數字(00–99)。

yyyy 將年份顯示為4位數的數字(100–9999)。

h 將小時顯示為沒有前置零的數字(0–23)。

hh 將小時顯示為具有前置零的數字(00–23)。

n 將分鐘顯示為沒有前置零的數字(0–59)。

nn 將分鐘顯示為具有前置零的數字(00–59)。

s 將秒顯示為沒有前置零的數字(0–59)。

ss 將秒顯示為具有前置零的數字(00–59)。

ttttt 使用由系統所辨識的時間格式所定義的時間分隔符號來格式化,將時間顯示為完整時間(包括小時、分鐘和秒)。

如果已選取[零開頭]選項,且時間是10:00A.M.或P.M.之前,則會將前置字元顯示為零。

預設時間格式是h:mm:ss。

AM/PM 使用12小時制,並且對任何中午之前的小時,顯示大寫的AM;對任何中午到下午11:59之間的小時,則顯示大寫的PM。

am/pm 使用12小時制,並且對任何中午之前的小時,顯示小寫的am;對任何中午到下午11:59之間的小時,則顯示小寫的pm。

A/P 使用12小時制,並且對任何中午之前的小時,顯示大寫的A;對任何中午到下午11:59之間的小時,則顯示大寫的P。

a/p 使用12小時制,並且對任何中午之前的小時,顯示小寫的a;對任何中午到下午11:59之間的小時,則顯示小寫的p。

AMPM 使用12小時制,並且對任何中午之前的小時,顯示您系統所定義的AM字串常值;對任何中午到下午11:59之間的小時,則顯示您系統所定義的PM字串常值。

AMPM可以是大寫或小寫,但顯示字串的大小寫,會符合您系統設定所定義的字串。

預設的格式是AM/PM。

如果您的系統設定為24小時制,字串通常會設定為零長度的字串。

使用者定義的數值格式 下表列出可用來建立使用者定義數值格式的字元。

字元 描述 無 顯示沒有格式的數字。

(0) 數字預留位置。

顯示數字或零。

如果運算式有數字位在格式字串中出現0的位置,則顯示該字元;否則在該位置顯示零。

如果格式運算式中,數字(在小數點的任一邊)的位數比零的位數還少,則顯示前置零或行尾零。

如果格式運算式中,數字在小數分隔符號右邊的位數比零的位數還多,將數字的小數位數四捨五入,以顯示所有位數的零。

如果格式運算式中,數字在小數分隔符號左邊的位數比零的位數還多,則顯示多餘的數字而不做修改。

(#) 數字預留位置。

會顯示數字或不顯示任何項目。

如果運算式有數字位在格式字串中出現#的位置,則顯示該字元;否則在該位置不顯示任何項目。

此符號的作用就像0數字預留位置,不同之處在於,如果在格式運算式中,數字在小數分隔符號任一邊的位數,與#字元的位數相同或更少,則不會顯示前置零或行尾零。

(.) 小數點預留位置。

在某些地區設定中,逗號會用作小數分隔符號。

小數點預留位置會決定小數分隔符號的左側和右側,要顯示多少位數字。

如果格式運算式中,這個符號的左邊只包含數字記號,則小於1的數字會以小數分隔符號開始。

若要顯示具有百分比值的前置零,請使用0作為小數點分隔符號左邊的第一個數字預留位置。

輸出結果中實際用作小數點預留位置的字元,會取決於您系統所辨識的[數字格式]。

(%) 百分比預留位置。

運算式會乘以100。

百分比字元(%)會插入其在格式字串中所出現的位置上。

(,) 千位分隔符號。

在某些地區設定中,句號會用作千位分隔符號。

在數字內小數分隔符號的左側有四位數或更多時,千位分隔符號會分隔千位數和百位數。

千位分隔符號的標準用法,是指定格式是否包含由數字預留位置括住的千位分隔符號(0或#)。

兩個相鄰的千位分隔符號,或緊接在小數分隔符號左側的千位分隔符號(無論是否指定小數點),表示「將數值除以1000來進位,視需要四捨五入」。

例如,您可以使用格式字串"##0,,",以100來代表一億。

小於1百萬的數字會顯示為0。

兩個相鄰的千位分隔符號,若不是緊接在小數分隔符號左側,而是其他任何位置時,將視為只是指定千位分隔符號的用法。

輸出結果中實際用作千位分隔符號的字元,會取決於您系統所辨識的[數字格式]。

(:) 時間分隔符號。

在某些地區設定中,其他字元可能會用來表示時間分隔符號。

當時間值已格式化時,時間分隔符號會分隔小時、分鐘和秒。

出結果中實際用作時間分隔符號的字元,是由系統設定所決定。

(/) 日期分隔符號。

在某些地區設定中,其他字元可能會用來表示日期分隔符號。

當日期值已格式化時,日期分隔符號會分隔日、月和年。

輸出結果中實際用作日期分隔符號的字元,是由系統設定所決定。

(E-E+e-e+) 科學記號格式。

如果格式運算式中,在E-、E+、e-或e+的右側,包含了至少一個數字預留位置(0或#)時,數字會以科學記號格式顯示,並在數字與其指數之間插入E或e。

數字預留位置右側的數字,會決定指數中數字的位數。

使用E-或e-在負指數的旁邊加上減號。

使用E+或e+在負指數的旁邊加上減號,並在正指數的旁邊加上加號。

-+$() 顯示常值字元。

若要顯示以上所列以外的字元,請在它前面加入反斜線(\),或以雙引號將其括住("")。

(\) 顯示格式字串中的下一個字元。

若要顯示的字元,像常值字元一樣具有特殊意義,請在它前面加入反斜線(\)。

反斜線本身不會顯示。

使用反斜線等同於將後面的字元括在雙引號裡。

若要顯示反斜線,使用兩個反斜線(\\)。

無法顯示為常值字元的字元範例,是日期格式和時間格式字元(a、c、d、h、m、n、p、q、s、t、w、y、/和:)、數值格式字元(#、0、%、E、e、逗號和句號)以及字串格式字元(@、&、、和!)。

("ABC") 顯示雙引號("")內的字串。

若要在程式碼內將字串包含在[格式]__中,您必須使用Chr(34)來括住文字(34是引號(")的字元碼)。

另請參閱 函式(VisualBasicforApplications) 支援和意見反應 有關於OfficeVBA或這份文件的問題或意見反應嗎?如需取得支援服務並提供意見反應的相關指導,請參閱OfficeVBA支援與意見反應。

本文內容



請為這篇文章評分?