VBA 的 Format 函數與工作表函數 TEXT 用法基本相同,但功能更加強大,許多格式只能用於VBA 的 Format 函數,而不能用於工作表函數 TEXT ,以下是本人歸納的幾點用法,希望對學習VBA有所裨益。
Format(值,格式(可選參數))
一、數位格式:
1、General Number:普通數位,可以用來去掉千位分隔號和無效 0 。
如:Format("1,234,567.80", "General
Number")="1234567.8"
2、Currency:貨幣類型,可添加千位元分隔號和貨幣符號,保留兩位元小數點。
如:Format(1234567, "Currency")="¥1,234,567.00"
3、Fixed:格式為帶兩位元小數的數位。
如:Format("123456", "Fixed")=123456.00
4、Standard:標準,即帶千位分隔號和兩位小數。
如:Format("123456", "Standard")=123,456.00
5、Percent:帶兩位小數點的百分數。
如:Format("123456", "Percent")=12345600.00
6、Scientific:科學記數法。
如:Format("1234567", "Scientific")=1.23E+06
7、Yes/No:當數值為非 0 數字時返回 Yes ,否則返回 No 。
"如:Format(-3.14, "Yes/No")="Yes"
Format(0, "Yes/No")="No"
8、True/False:當數值為非 0 數字時返回 True ,否則返回 False 。
與第7點類似,這裡不再舉例。
9、On/Off:當數值為非 0 數字時返回 On ,否則返回 Off 。
與第7點類似,這裡不再舉例。
10、""或省略:返回原值,但去除了小數點前後的無效 0 。
如:Format("0.1030", "")=".103"
11、0:占位格式化,不足位時補足 0 。
"如:Format(123, "0000")="0123"
Format$(12.3, "0.00")="12.30"
12、#:占位格式化,不足位時不補足 0 。
如:Format(123, "####")=123
13、%:轉化為百分數,一個%代表乘以 100 。
如:Format(1.23, "0.00%")=123.00%
Format(1.23, "0.00%%")=12300.00%%
14、\:強制顯示某字元。
如:Format$(12.34, "\R\M\B .00")="RMB 12.34"
15、;(分號):分段顯示不同格式
比如要把正數顯示為“正”,負數顯示為“負”,0顯示為“零”,參數為"正;負;零"
如:Format$(123, "正;負;零")="正"
第1段為正數格式,第2段為負數格式,第3段為0格式。
二、日期和時間格式:
1、固定格式參數
General Date:基本類型
如:Format("2010-5-1 9:8:5", "General
Date")="2010/5/1 9:08:05"
Long Date:作業系統定義的長日期
如:Format("2010-5-1 9:8:5", "Long Date")=2010年5月1日
Medium Date:中日期
如:Format("2010-5-1 9:8:5", "Medium Date")=10-05-01
Short Date:作業系統定義的短日期
如:Format("2010-5-1 9:8:5", "Short Date")=2010-5-1
Long Time:作業系統定義的長時間
如:Format("2010-5-1 9:8:5", "Long Time")=9:08:05
Medium Time:帶AM/PM(上午/下午)的12小時制,不帶秒
如:Format("2010-5-1 9:8:5", "Medium Time")=09:08 上午
Short Time:24時制的時間,不帶秒
如:Format("2010-5-1 9:8:5", "Short Time")=09:08
2、自訂格式
C:格式化為國標的日期和時間
如:Format("2010-5-1 9:8:5", "c")=2010/5/1 9:08:05
y:一年中的第幾天(1-366)
如:Format("2010-5-1 9:8:5", "y")=121
yy:兩位數的年份(00-99)
如:Format("2010-5-1 9:8:5", "yy")=10
yyy:上面的 yy 與 y 結合在一起
"如:Format("2010-5-1 9:8:5", "yyy")=10121
Format("2010-5-1 9:8:5", "yy年第y天")=10年第121天
yyyy:四位數的年份(0100-9999)
如:Format("2010-5-1 9:8:5", "yyyy")=2010
d:一個月中的第幾天(1-31)
如:Format("2010-5-1 9:8:5", "d")=1
dd:與 d 相同,但不足兩位時補足 0
如:Format("2010-5-1 9:8:5", "dd")=01
ddd:三個英文字母表示的星期幾
如:Format("2010-5-1 9:8:5", "ddd")="Sat"
dddd:英文表示的星期幾
如:Format("2010-5-1 9:8:5",
"dddd")="Saturday"
ddddd:顯示標準日期
如:Format("2010-5-1 9:8:5", "ddddd")=2010/5/1
dddddd:長日期
如:Format("2010-5-1 9:8:5", "dddddd")=2010年5月1日
w:一個星期中的第幾天(始于周日,周日為1)
如:Format("2010-5-1 9:8:5", "w")=7
ww:一年中的第幾周
如:Format("2010-5-1 9:8:5", "ww")=18
m:月份數(當用於時間時,也可以表時為分鐘)
如:Format("2010-5-1 9:8:5", "m")=5
mm:當小於10時帶前導0的月數(當用於時間時,也可以表示為兩位數的分鐘數)
如:Format("2010-5-1 9:8:5", "mm")=05
mmm:三個英文字母表示的月份數
如:Format("2010-1-1 9:8:5", "mmm")="Jan"
mmmm:英文表示的月份數
如:Format("2010-1-1 9:8:5",
"mmmm")="January"
q:一年中的第幾季(1-4)
如:Format("2010-5-1 9:8:5", "q")=2
aaa:中文表示的周幾
如:Format("2010-5-1 9:8:5", "aaa")=週六
aaaa:中文表示的星期幾
如:Format("2010-5-1 9:8:5", "aaaa")=星期六
h:小時數(0-23)
如:Format("2010-5-1 9:8:5", "h")=9
h:兩位數表示的小時數
如:Format("2010-5-1 9:8:5", "hh")=09
n:分鐘數(0-59)
如:Format("2010-5-1 9:8:5", "n")=8
nn:兩位數表示的分鐘數(00-59)
如:Format("2010-5-1 9:8:5", "nn")=08
s:秒數(0-59)
如:Format("2010-5-1 9:8:5", "s")=5
ss:兩位數表示的秒數(00-59)
如:Format("2010-5-1 9:8:5", "ss")=05
ttttt:標準時間,當小時數小於10時不帶0,與 h:mm:ss 或 h:nn:ss 相同
如:Format("2010-5-1 9:8:5", "ttttt")=9:08:05
AM/PM:顯示當前為AM或PM
如:Format("2010-5-1 11:59:59", "AM/PM")=AM
Format("2010-5-1 12:0:0", "AM/PM")=PM
A/P:顯示當前為A或P
與 AM/PM 一樣,這裡不再舉例。
說明:
可以多種格式聯合使用,如:
Format("2010-5-1 9:8:5",
"dddddd aaaa")=2010年5月1日 星期六
三、文本格式
@:匹配位置插入格式化文字,如:
在"abcde"前插入文本"X",代碼為:Format("abcde", "X@")=Xabcde
在"abcde"第1位元字元後面插入文本"X",代碼為:Format("abcde", "@X")=aXbcde
在"abcde"第2位元字元後面插入文本"X",代碼為:Format("abcde", "@@X")=abXcde
在"abcde"第3位元字元後面插入文本"X",代碼為:Format("abcde", "@@@X")=abcXde
當點位元符@比原文本字串多時,剛在相應位置上添加空格,如:
Format("abc",
"X@@@@")="X abc"
Format("abc",
"X@@@@@")="X abc"
Format("t",
"@@a@")=" at"(空格空格at)
與!配合可從後面截取一段文本,如:
截取"abcde"後面1個字元文本,代碼為:Format("abcde", "!@")=e
截取"abcde"後面2個字元文本,代碼為:Format("abcde", "!@@")=de
截取"abcde"後面3個字元文本,代碼為:Format("abcde", "!@@@")=cde
截取"abcde"後面兩位,並在前面添加"XY",代碼為:Format("abcde", "!XY@@")=Xyde
&:字元預留位置,與@基本相同,這裡不再贅述。
<:強制將所有字元以小寫格式顯示。
如:Format$("I Love You", "<")=i love you
>:強制將所有字元以大寫格式顯示。
如:Format$("I Love You", ">")=I LOVE YOU
------------------------------
沒有留言:
張貼留言