倒计时计时器和日期,日历记分牌VBA是应用程序的Visual Basic的缩写。它不同于Visual Basic。微软提出了这个编程功能,用于微软Office软件套件。它可以用来创建在Microsoft Excel、Outlook或MS Office套件的其他组件上运行的程序。在这个中级教程中,我们将带您通过VBA格式功能的日期和时间。VBA格式函数接受一个表达式、日期或数字值,并将其转换为字符串。我们假设你知道MS Excel和Visual basic应用程序的基本概念。你可以在这个优秀的课程中了解更多关于VBA的信息如果你赶时间,你可以参加24小时VBA培训课程

如何分配VBA日期值给一个变量

您可以设置从Excel 2000到Excel 2013的任何版本的Microsoft Excel格式。在Excel VBA中,您可以将任何日期格式作为值分配给具有日期数据类型的变量。但是,要确保值放在简单散列(#)标记之间。这里VBA将值转换为“Date”,可以用于比较和其他类型的语句。下面的例子说明了这一点:

D1 = #3月24日,2014# D1 = #3月24日,2014#

VBA将在2014年3月24日之前对上述声明进行解释。在我们继续之前了解有关如何使用MS Excel的VBA的更多信息,你可能想尝试一下这个初级课程;或者只是通过我们的VBA教程来提高你的理解

VBA格式函数

Microsoft Excel格式函数接受日期表达式,并将其返回为格式化字符串。格式日期函数的语法看起来像这样

格式(表达式,[Format, [firstdayofweek, [firstweekofyear]]])

让我们仔细看看参数。

  1. 表达式表示要格式化的值。
  2. 格式表示要应用于表达式的格式。它是可选的。在VBA格式日期功能中,您可以选择定义自己的格式或使用一些MS Excel预定义格式。
  3. Firstdayofweek指定一周的第一天。如果没有声明,格式函数假定星期日是一周的第一天。此参数是可选的。
  4. Firstweekofyear是指定一年的第一周的值。但是,如果没有声明该参数,则Format函数假定第一周从1月1日开始。

下表显示了一些Excel预定义的日期格式。

格式

解释
一般的日期 根据系统设置显示日期
长时间的日期 根据系统的长日期设置显示日期
中日期 根据系统的媒体日期设置显示日期
短的日期 根据系统的短日期设置显示日期
长时间 显示时间取决于系统的长时间设置
媒介的时间 显示时间取决于系统的介质时间设置
短的时间内 根据系统的短时间设置显示时间

下表包含参数“FirstDayoftheweek”可以在VBA程序中占用的值。

持续的

价值

解释
vbUseSystem 0 使用NLS API(国家语言支持应用程序接口)设置
VbSunday 1 Sunday(默认,如果没有声明参数)
vbMonday 2 周一
vbTuesday 3. 周二
vbWednesday 4 周三
vbThursday 5 周四
vbFriday 6 星期五
vbSaturday 7 周六

下表列出了你可以在VBA程序中使用的可选参数“Firstweekofyear”的可能值。看一看

持续的 价值 解释
vbUseSystem 0 使用NLS API设置
vbFirstJan1 1 含有1月1日的一周
vbFirstFourDays 2 一年中至少有4天的第一个星期
vbFirstFullWeek 3. 一年的第一个完整的星期

以下是Excel VBA中的日期的格式函数的一些示例,以使此功能更加清晰。

1.格式(#24/03/2014#,“Short Date”)将返回“24/03/2014”

2.格式(#24/03/2014#,“Long Date”)将返回“2014年3月24日”

3.格式(#24/03/2014#," yyyy/mm/dd ")将返回' 2014/03/24 '

我们建议您自己编写更多关于日期函数格式的示例。这将帮助您更适应各种选择。本课程与先生Excel可以帮助您得到一个很好的锻炼与Excel VBA的例子

用户自定义格式用于日期和时间

注意,您还可以使用Format函数的一些预定义变体来表示日期和时间。它的语法是这样的

格式(表达、风格)

下表显示了日期和时间的用户定义的格式函数。仔细阅读

格式 解释
格式(现在,“M”) 显示当前的月份和日期
格式(现在,“毫米”) 在两位数字中显示当前月。
格式(现在,“嗯”) 显示当前月份的缩写名称
格式(现在,“mmmm”) 显示当前月份的全名。
格式(“dd / MM / yyyy”) 以日/月的格式显示当前日期。
格式(现在,“嗯,d, yyyy”) 显示本月,日,年格式的当前日期
格式(现在,“h:mm:ss tt”) 显示当前时间的格式小时:分钟:秒和显示am/pm
格式(现在," MM/dd/yyyy h: MM:ss ") 以小时:分钟:秒的格式显示当前日期和时间

让我们使用一个简单的VBA程序进一步了解用户定义的日期和时间格式函数。

subnewbutton_click (ByVal sender As System.)Object, ByVal e As System.EventArgs)处理Button1。点击,Button2。点击,Button3。单击Label1。Text = Format(Now, "M")Text = Format(Now, "MM")Text = Format(Now, "MMM")Text = Format(Now, "MMMM")Text = Format(Now, "dd/MM/yyyy")Text = Format(Now, "MMM,d,yyyy")Text = Format(Now, "h:mm:ss tt")Text = Format(Now, "MM/dd/yyyy h: MM:ss tt"

运行此程序时,它将以不同格式显示当前系统日期。

Label1。文本将显示3月24日Label2。文本将显示03 Label3。文本将显示Mar Label4。文本将显示三月标签5。文本将显示24/03/2014标签6。文本将显示2014年3月24日的标签7。文本将显示12:49:23 PM Label8。文本将显示03/24/2014 12:49:23 PM

VBA日期功能支持的字符

VBA日期函数支持这些字符以显示日期和时间。这是一个很长的名单,所以请查看下表!

字符 例子 描述
8 月(无零的数字)
毫米 08 月(数值为零)
9月 月(缩写为文本)
9月 月(全长文字)
d 6 日(无零的数字)
dd 06 日(数字加零)
DDD. 结婚 天(缩写为文本)
dddd 周三 天(全长文字)
yy 14 年份(最后两位)
yyyy 2014 (4位数字)
h 9 无零小时数(0-23)
hh 09 零小时(00-23)
n 7 无零分钟(0-59)
NN. 07 零分(00-59)
年代 5 没有零的秒数(0-59)
党卫军 05 用零(00-59)秒
AM / PM 显示AM / PM

让我们用一个例子来帮助你更好地理解上面的表格。

Sub date_and_time() date_example = Now() Range("C1") = Format(date_example, "mm - dd.yy") Range("C2") = Format(date_example, "d mmmmyyyy") Range("C3") = Format(date_example, "mmmm j, yyyy") Range("C4") = Format(date_example, "ddddd") Range("C5") = Format(date_example, "mmmm-yy") Range("C6") = Format(date_example, "mmmm-yy")"mm.dd.yyyyhh:mm") Range("C7") = Format(date_example, "m.d.yy h:mm AM/PM") Range("C8") = Format(date_example, "h\Hmm") End Sub . Format(date_example, "h\Hmm"

在这个程序中,我们通过now()将系统日期和时间分配给变量date_example。在程序执行之后,单元格将包含以下值

C1将包含03.24.14 C2将包含2014年3月24日C3将包含2014年3月24日C4将包含Mon 24 C5将包含3 -14 C6将包含03.24.2014 15:04 C7将包含3.24.14 15:04 PM C8将包含15H04

下面是一个使用日期函数来计算年龄的例子。我们假设你有基本的编程知识。如果没有,请参考我们的基本教程VBA编程。

在VBA中计算年龄

函数年龄(日期为日期,日期为日期)作为字符串昏暗岁月作为整数昏暗的月份作为整数暗淡的day1作为整数暗淡qup作为日期temp = dateserial(年(date2),月(date1),日(date1),日(date1))岁=年(DAY2) - 年(date1)+(temp> date2)月1 =月(date2) - 月份(date1) - (12 *(temp> date2))day1 =日(date2) - 日(date1)如果第1天1 <0那么月_1 =月份= 1天1 =日(日期(日期(日期),月(date2)+ 1,0))+ day1 + 1结束如果年龄=年度1和“几年”和月份_1&“月份”和日“天”结束功能

该程序接受两个参数Date1和Date2。日期1是你出生的年份,日期2是当前日期。最后,你会得到以年、月、日为单位的年龄。

正如您刚才看到的,用于日期和时间的Format函数有多种选项。您可以选择要在程序中显示或使用的格式。一如既往,熟能生巧。你自己试试这些例子吧。如果你愿意的话获得更多的手与VBA之前,你继续,本课程可以帮助你.一旦你准备好了,你就能做到尝试这个终极VBA课程.让我们知道它的进展!

页面最后更新:2020年2月

Excel VBA顶级课程

解锁Excel VBA和Excel宏
莱拉Gharani
4.6 (28272)
畅销书
Microsoft Excel Macros和Excel VBA硕士
凯尔尤
4.6 (12570)
畅销书
使用Excel VBA完成Web自动化
丹尼尔强
4.6 (774)
畅销书
最终的Excel VBA数组课程
丹尼尔强
4.5 (472)
Excel与微软Excel VBA用户表单
凯尔尤
4.7 (1235)
最终Excel VBA
马克Talbert
4.5 (3316)
Excel VBA编程-完整的指南
鲍里斯Paskhaver
4.7 (3,844)

更多Excel VBA课程

Excel VBA学生也学习

让你的团队。领导行业。

通过Udemy for Business订阅您组织的在线课程和数字学习工具图书馆。

请求一个演示