2020年2月17日 星期一

VBA 格式化字符串--Format大全




VBA Format 函數與工作表函數 TEXT 用法基本相同,但功能更加強大,許多格式只能用於VBA Format 函數,而不能用於工作表函數 TEXT ,以下是本人歸納的幾點用法,希望對學習VBA有所裨益。

Format(,格式(可選參數))
一、數位格式:
1General Number:普通數位,可以用來去掉千位分隔號和無效 0
如:Format("1,234,567.80", "General Number")="1234567.8"
2Currency:貨幣類型,可添加千位元分隔號和貨幣符號,保留兩位元小數點。
如:Format(1234567, "Currency")="¥1,234,567.00"
3Fixed:格式為帶兩位元小數的數位。
如:Format("123456", "Fixed")=123456.00
4Standard:標準,即帶千位分隔號和兩位小數。
如:Format("123456", "Standard")=123,456.00
5Percent:帶兩位小數點的百分數。
如:Format("123456", "Percent")=12345600.00
6Scientific:科學記數法。
如:Format("1234567", "Scientific")=1.23E+06
7Yes/No:當數值為非 0 數字時返回 Yes ,否則返回 No
"如:Format(-3.14, "Yes/No")="Yes"
    Format(0, "Yes/No")="No"
8True/False:當數值為非 0 數字時返回 True ,否則返回 False
與第7點類似,這裡不再舉例。
9On/Off:當數值為非 0 數字時返回 On ,否則返回 Off
與第7點類似,這裡不再舉例。
10""或省略:返回原值,但去除了小數點前後的無效 0
如:Format("0.1030", "")=".103"
110:占位格式化,不足位時補足 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")=201051
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 Time24時制的時間,不帶秒
如: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")=201051
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:顯示當前為AMPM
如:Format("2010-5-1 11:59:59", "AM/PM")=AM
    Format("2010-5-1 12:0:0", "AM/PM")=PM
A/P:顯示當前為AP
AM/PM 一樣,這裡不再舉例。
說明:
可以多種格式聯合使用,如:
Format("2010-5-1 9:8:5", "dddddd aaaa")=201051 星期六
三、文本格式
@:匹配位置插入格式化文字,如:
"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

------------------------------

沒有留言:

張貼留言