相关知识点:
Format(原文本,期望格式,firstDayOfweek,firstWeekOfYear)firstDayOfweek可取值,每周的开始,星期几开始计算;firstWeekOfYear可取值,全年的起始周(例如2019/1/1,起始周),其中VbfristFullWeek,VbfirstFourDays与一周起始的指定星期几(firstDayOfweek)有关联,例如周起始日指定星期二,那么2019/1/1就是一年整周的开始点,是完整周。
\ 文本中含有格式符必须加反斜杠转义以后才能输出,否则输出的是格式符例5
@ 在Format中代表原文本中对应位置的一个字符,如果@的个数超过原文本的字符数,则多出来的@显示为空格;
- 当@个数少于原文本时,自动补齐所缺少的@符号。
- 当@个数多于原文本时,从右向左匹配字符,多出来的显示为空格
- 使用!后,如果@个数少于原文本字符数,不会自动补齐,直接从右向左匹配!
- 使用!后,如果@个数多于原来文本字符数,从左向右匹配字符,多出来的@显示为空格!
例1 星期显示为中文
Sub dateformat1()
Dim s as string, d as date
d=Range(“d3”).Value
‘s=Format(d,”long date”) ‘返回2017年10月19日
s=Format(d,”m月第d天(公元yyyy年),aaaa”) ‘返回10月第19天(公元2017年),星期四
MsgBox s
End Sub
例2 星期的第几天,按照欧美习惯,星期天是一周第一天。
Sub dateformat2()
Dim s as string, d as date
d=Range(“d3”).Value
‘s=Format(d,”long date”) ‘返回2017年10月19日
s=Format(d,”当周第w天,aaaa”) ‘当周第5天,星期四
MsgBox s
End Sub
例3 星期的第几天,星期一作为第一天
Sub dateformat3()
Dim s as string, d as date
d=Range(“d3”).Value
‘s=Format(d,”long date”) ‘返回2017年10月19日
s=Format(d,”当周第w天,aaaa” ,vbMonday) ‘当周第4天,星期四
MsgBox s
End Sub
例4 某一天是全年第几周
Sub dateformat4()
Dim s as string, d as date
d=Range(“d3”).Value
‘s=Format(d,”long date”) ‘返回2017年10月19日
s=Format(d,”本年度第w周” ) ‘本年度第42周
MsgBox s
End Sub
例5 如果输出含有格式符的字符串,必须像正则表达式那样处理一下这个字符,加反斜杠
Sub demo()
Msgbox Format(1234,”R\MB ####”) ‘返回RMB 1234,不加反斜杠返回R5M ####
End Sub
例6 Format处理文本,姓名变成姓,名
Sub demostr()
s=”张宏义”
r=Format(s,”@,”) ‘返回 张,宏义,@在Format中代表原文本中对应位置的一个字符
Msgbox r
End Sub
例7 !@组合实现右起取2个字符
Sub demostr7()
Dim s as string, r as string
s=”张弘毅”
r=Format(s,”!@@”) ‘返回 弘毅
‘r=Right(s,2) ‘返回 弘毅
Msgbox r
End Sub