VBA 格式化字符串 - Format大全
VBA 格式化字符串
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, "RMB .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
转自:http://www.cnblogs.com/zhengyuxin/articles/1932724.html
---------------------------------
Format[$] ( expr [ , fmt ] )
format 返回变体型
format$ 强制返回为文本
--------------------------------
数字类型的格式化
--------------------------------
固定格式参数:
General Number 普通数字,如可以用来去掉千位分隔号
format$("100,123.12","General Number") 返回值 100123.12
Currency 货币类型,可添加千位分隔号和货币符号
format$("100123.12","Currency") 返回值 ¥100,123.12
Fixed 格式为带两位小数的数字
format$("100123","Fixed") 返回值 100123.00
Standard 标准,即带千位分隔号和两位小数
format$("100123","Standard") 返回值 100,123.00
Percent 百分数
format$("100123","Percent") 返回值 10012300.00%
Scientific 科学记数法
format$("100123","Scientific") 返回值 1.00E+05
Yes/No 当值为0时返回 NO,否则返回 YES
format$("100123","Yes/No") 返回值 Yes
True/False 当值为0时返回 False,否则返回 True
format$("100123","True/False") 返回值 True
On/Off 当值为0时返回 Off,否则返回 On
format$("100123","Yes/No") 返回值 On
自定义格式参数
"" 不进行格式化 返回值 原值
0 占位格式化,不足补0
format$("100123","0000000") 返回值 0100123
# 占位格式化,不足时不补0
format$("100123","#######") 返回值 100123
. 强制显示小数点
format$("100123.12",".000") 返回值 100123.120
% 转化为百分数,一个%代表乘以100
format$("10.23","0.00%") 返回值 1023.00%
format$("10.23","0.00%%") 返回值 102300.00%%
, 以千为单位格化
format$("10.23",",") 返回值 0
format$("10010.23",",") 返回值 10
format$("10010.23",",0.00") 返回值 10.01
E- E+ e- e+ 显示为科学记数(要注意格式语句,否则会和E的其它含义相混)
Format$(12.5,"0.00E+00") 返回值 1.25E+01
$ 强制显示货币符号
format$("10.23","{threadcontent}.00") 返回值 ¥10.23
- + ( ) space 按位置显示本样
Format$("1234.56","-(0.00)") 返回值 -(1234.56)
转义符,显示出特殊符号
Format$("1234.56","#.00") 返回值 #1234.56
"ABC" 显示双引号 (" ") 之内的字符串。如在代码中想在 format 中包含一个字符串,必须用 Chr(34) 将文本括起来(34 为双引号 ("))
Format$(123.45,"TTT") 返回值 TTT
注:当双引号中的文本包含特殊的参数符号如e,要使用转义符"",否则会按e的作用显示
; 类似多目运算符的作用。
当共有 四 部分时,
当大于0时,按第一部分进行格式化,
当小于0时按第二部分进行格式化,
当等于0时按第三部分进行格式化,
当为null值时,按第四部分进行格式化。如:
Format$(0,"0.00;负数;零;空") 返回值 零
当共有 三 部分时,
当大于0时,按第一部分进行格式化,
当小于0时按第二部分进行格式化,
当等于0时按第三部分进行格式化,如:
Format$(-10,"0.00;ttt;零") 返回值 ttt
当共有 两 部分时,
当大于或等于0时,按第一部分进行格式化,
当小于0时按第二部分进行格式化,
Format$(-123,"0.00;abc") 返回值 abc
Format$(123,"0.00;abc") 返回值 123.00
当共有 一 部分时,按分号左边进行格式化
---------------------------------
日期类型的格式化
---------------------------------
注意:在中文操作系统中,系统自动将月份输为如:五月,而非 May
固定格式参数
General Date 基本类型
Format(Date,"YYYY年MM月DD日")
'M 个位月只显示一位,
'MM 显示两位月,
'MMM显示英文月简称,
'MMMM显示英文全名
Format$(Now,"General Date") 返回值 2006-5-25 14:56:15
Long Date 操作系统定义的长日期
Format$(Now,"Long Date") 返回值 2006年5月25日
Medium Date 中日期(yy/mmm/dd)
Format$(Now,"Medium Date") 返回值 06-5月-25
Short Date 操作系统定义的短日期
Format$(Now,"Short Date") 返回值 2006-5-25
Long Time 操作系统定义的长时间
Format$(Now,"Long Time") 返回值 15:06:36
Medium Time 带AM/PM的12小时制,不带秒
Format$(Now,"Medium Time") 返回值 03:08 PM
Short Time 24时制的时间,不带秒
Format$(Now,"Short Time") 返回值 15:08
自定义格式参数
: 用来标识时间字符的间隔
Format$(Time(),"hh:nn") 返回值 15:25
/ 用来标识日期字符的间隔
Format$(now,"yyyy/mm/dd") 返回值 2006-05-25
c 格式化为国标的日期和时间
Format$(Now,"c") 返回值 2006-5-25 14:56:15
y 一年中的第几天
Format$(Now,"y") 返回值 145
d 一个月中的第几天(1-366)
Format$(Now,"d") 返回值 25
dd 当小于10时前面带0的天数(01-31)
Format$("2006-1-7","dd") 返回值 07
ddd 周几
Format$(Now,"ddd") 返回值 周四
dddd 星期几
Format$(Now,"dddd") 返回值 星期四
ddddd 显示标准日期
Format$(Now,"ddddd") 返回值 2006-05-25
dddddd 长日期
Format$(Now,"dddddd") 返回值 2006年5月25日
w 一个星期中的第几天
Format$(Now,"w") 返回值 5
ww 一年中的第几周
Format$(Now,"ww") 返回值 21
m 月数(注:当用于时间时,也可以表时为分钟)
Format$(Now,"m") 返回值 5
Format$(Now,"h:m") 返回值 16:11
mm 当小于10时前面带0的月数(注:当用于时间时,也可以表时为带0的分钟)
Format$(Now,"m") 返回值 05
Format$(Now,"hh:mm") 返回值 16:09
mmm 月份
Format$(Now,"mmm") 返回值 五月
q 一年中的第几季(1-4)
Format$(Now,"q") 返回值 2
yy 两位数的年份(00-99)
Format$(Now,"yy") 返回值 06
yyyy 四位数的年份(0100-9999)
Format$(Now,"yyyy") 返回值 2006
h 一天中的第N小时(0-23)
Format$(Now,"h") 返回值 16
hh 当小于10时带0的小时数(00-23)
Format$("7:30:28","hh") 返回值 07
n 一小时的分钟数(0-59)
Format$("7:30:28","n") 返回值 30
nn 当小于10时带0的分钟数(00-59)
Format$("7:3:28","n") 返回值 03
s 一分钟中的秒数(0-59)
Format$("7:30:8","s") 返回值 8
ss 当小于10时带0的分钟数(00-59)
Format$("7:3:8","ss") 返回值 08
ttttt 标准时间,小时数当小于10时不带0,与h:mm:ss相同
Format$("7:3:28","ttttt") 返回值 7:03:28
AM/PM 显示当前为AM或为PM
Format$(Now,"AM/PM") 返回值 PM
A/P 显示当前为A或为P
Format$(Now,"A/P") 返回值 P
AMPM 对0至2359的数值进行判断是AM还是PM,可以看作是同等于对00:00至23:59的数字进行判断,如1000可以看作是10:00。
Format$(1000,"AMPM") 返回值 AM
联合格式化
m/d/yy Format$(Now,"m/d/yy") 返回值 5-25-06
d-mmm-yy Format$(Now,"d-mmm-yy") 返回值 25-5月-06
d-mmmm Format$(Now,"d-mmmm") 返回值 25-五月
mmmm-yy Format$(Now,"mmmm-yy") 返回值 五月-06
hh:mm AM/PM Format$(Now,"hh:mm AM/PM") 返回值 04:50 PM
h:mm:ss a/p Format$(Now,"h:mm:ss a/p") 返回值 4:51:38 p
h:mm Format$(Now,"h:mm") 返回值 16:51
h:mm:ss Format$(Now,"h:mm:ss") 返回值 16:51:38
m/d/yy h:mm Format$(Now,"m/d/yy h:mm") 返回值 5-25-06 16:54
----------------------------------
文本类型的格式化
----------------------------------
; 当两部分时,则第一部分为非空格式化,第二部分为null值或空值的格式化表达式
@ 匹配位置插入格式化文本,占位位置不存在时,显示空白(空字符串)
只有一个@符号时,是在最后面加上格式化文本
Format$("CHIN","@a") 返回值 CHINa
有多个@占位符,是按从右至左匹配,并在相应的位置上显示格式化文本
Format$("CHIN","@a@@") 返回值 CHaIN
当与 ! 配合时,则变为从左至右匹配
Format$("CHIN","[email=!@a]!@a[/email]@@") 返回值 CaHIN
当占位符比原文本字符串多时,刚在相应位置上添加空格
Format$("C","@@a@") 返回值 空白空白aC
& 字符占位符。除在当占位位置不存在时,不显示外,其余均与@相同
当占位符比原文本字符串多时,刚在相应位置上添加空格
Format$("C","&&a&") 返回值 aC
< 强制小写。将所有字符以小写格式显示。
Format$("I love you","<") 返回值 i love you
> 强制大写。将所有字符以大写格式显示。
Format$("I love you",">") 返回值 I LOVE YOU
! 强制由左而右填充字符占位符。缺省值是由右而左填充字符占位符。
Format$("CHIN","[email=!@a]!@a[/email]@@") 返回值 CaHIN
----------------------------------------
强制使用中文格式的日期时间
----------------------------------------
aaaa 星期
Format$(Now,"aaaa") 返回值 星期五
O 中文月份
Format$(Now,"O") 返回值 五月
o 单字节月份
Format$(Now,"o") 返回值 5月
A 中文日期
Format$(Now,"A") 返回值 二十六日
a 单字节日期
Format$(Now,"a") 返回值 26日
E 短中文年份
Format$(Now,"E") 返回值 六年
e 单单字节年份
Format$(Now,"e") 返回值 6年
EE 中文年份
Format$(Now,"EE") 返回值 二○○六年
ee 单字节年份
Format$(Now,"ee") 返回值 2006年
想不到中文日期的问题就这么容易解决
VBA 格式化字符串 - Format大全的更多相关文章
- Python 的格式化字符串format函数
阅读mattkang在csdn中的博客<飘逸的python - 增强的格式化字符串format函数>所做笔记 自从python2.6开始,新增了一种格式化字符串的函数str.format( ...
- 飘逸的python - 增强的格式化字符串format函数
自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱. 语法 它通过{}和 ...
- 格式化字符串format函数
自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱. 语法 它通过{}和 ...
- Python格式化字符串--format
format格式化字符串方法相较于老版%格式方法的优点: 1.不需要理会数据类型的问题,在%方法中'%s'只能替代字符串类型. 2.单个参数可以多次输出,参数顺序可以不相同. 3.填充方式十分灵活,对 ...
- (转)飘逸的python - 增强的格式化字符串format函数
原文:https://blog.csdn.net/handsomekang/article/details/9183303 Python字符串格式化--format()方法-----https://b ...
- 增强的格式化字符串format函数
http://blog.csdn.net/handsomekang/article/details/9183303 自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓 ...
- 【Python开发】增强的格式化字符串format函数
自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱. 语法 它通过{}和 ...
- Java格式化字符串Format
java的jdk1.5开始引用了对字符串的格式化处理,类似于C语言的printf("%d,%d",a,b);,对数据的处理非常方便,之所以有这样的方式输出,很多人说是为了抢夺C语言 ...
- python - 增强的格式化字符串format函数
语法 它通过{}和:来代替%. “映射”示例 通过位置 In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.form ...
随机推荐
- 使用C# 和Consul进行分布式系统协调
随着大数据时代的到来,分布式是解决大数据问题的一个主要手段,随着越来越多的分布式的服务,如何在分布式的系统中对这些服务做协调变成了一个很棘手的问题.今天我们就来看看如何使用C# ,利用开源对分布式服务 ...
- AutoMapper(六)
返回总目录 List和数组 AutoMapper只要求元素类型的配置而不要求可能会用到的任何数组或者list类型.比如,我们有一个简单的源和目标类型: public class Source{ pub ...
- Fedora 22中的日期和时间配置
Introduction Modern operating systems distinguish between the following two types of clocks: A real- ...
- Apache2.4卡住无法访问的解决……
早两个星期,搭建了一个项目管理平台--<如何安装一个优秀的BUG管理平台--真的是手把手教学!>.以前都是用apache2.2的,这次换了apache2.4.安装起来是没有问题的,结果运行 ...
- 从EF的使用中探讨业务模型能否脱离单一存储层完全抽象存在
上次赶时间,就很流水账地写了上次项目对EF的一次实践应用模式,因为太长了,也没能探讨太多,所以再继续扩展. 这次想探讨的是,实体,如果作为类似于领域模型的业务模型存在,它的数据能否来自不同的数据源.这 ...
- node.js里npm install --save 与 npm install --save-dev 的区别
在package.json可以看到一个放在package.json 的dependencies , 一个放在devDependencies里面. 目前找到的一些解答:真正跑在用户浏览器中的代码,比如j ...
- 牛顿法求平方根 scala
你任说1个整数x,我任猜它的平方根为y,如果不对或精度不够准确,那我令y = (y+x/y)/2.如此循环反复下去,y就会无限逼近x的平方根.scala代码牛顿智商太高了println( sqr(10 ...
- 使用python实现短信PDU编码
前几天入手一个3G模块,便倒腾了一下.需要发送中英文混合短信,所以采用PDU模式(不了解google ^_^). 最大问题当然就是拼接PDU编码(python这么强大,说不定有模块),果不其然找到一个 ...
- cookies,sessionStorage和localStorage的区别---web前端sessionStorage和localStorage区别
sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁.因此sessionStorage不是一种持久化的本地 ...
- 读取xml数据装配到字典中
public Dictionary<string, string> GetXml() { Dictionary<string, string> dic = new Dictio ...