VBA格式日期:把它转换成你想要的类型!
VBA代表Visual Basic for Applications。它与Visual Basic不同。Microsoft提出了此编程功能可与Microsoft Office软件套件一起使用。它可用于创建要在Microsoft Excel,Outlook或MS Office套件的其他组件上运行的程序。在这种中级教程中,我们通过日期和时间浏览VBA格式函数。VBA格式函数采用表达式,日期或数字值,并将其转换为字符串。我们假设您知道MS Excel和Visual Basic for Applications的基本概念。您可以在这个优秀的课程中了解更多关于VBA的信息或者你很着急,你可以参加这个24小时VBA培训课程。
如何将VBA日期值分配给变量
您可以从Excel 2000开始的任何版本的Microsoft Excel的格式设置为Excel版本2013.您可以将任何日期格式分配为具有Excel VBA中的日期数据类型的变量的值。但是,请确保在简单的哈希(#)标签之间放置值。这里VBA将值转换为可用于比较和其他类型的语句的“日期”。以下示例显示:
d1 = #march 24,2014#d1 =#3/24 / 2014#d1 =#03 / 24/2014#
VBA将把上述陈述解释为日期“2014年3月24日”。在我们继续前进之前了解有关如何使用MS Excel的VBA的更多信息,您可能想要尝试此底漆课程;要不就崩溃通过我们的VBA教程来刷你的理解。
VBA格式函数
Microsoft Excel格式函数接受日期表达式,并将其返回为格式化字符串。格式日期函数的语法看起来像这样
格式(expression, [Format, [firstdayofweek, [firstweekofyear]]])
让我们仔细看看参数。
- 表达代表要格式化的值。
- 格式代表要应用于表达式的格式。它是可选的。在VBA格式日期函数中,您可以选择定义自己的格式或使用一些MS Excel预定义格式。
- Firstdayofweek指定一周的第一天。如果没有声明,格式函数假定星期日是一周的第一天。此参数是可选的。
- FirstWeekofyear.是指定一年的第一周的值。但是,如果没有声明此参数,则Format函数假定第一周从1月1日开始。
下面的表格显示了一些Excel预定义的日期格式。
格式 |
解释 |
一般的日期 | 根据系统设置显示日期 |
长期 | 根据系统的长期设置显示日期 |
中等日期 | 根据系统的媒体日期设置显示日期 |
短期约会 | 根据系统的短日期设置显示日期 |
长时间 | 根据系统的长时间设置显示时间 |
媒介的时间 | 根据系统的中间时间设置显示时间 |
短的时间内 | 根据系统的短时间设置显示时间 |
下表包含参数“FirstDayoftheweek”可以在VBA程序中占用的值。
不变 |
值 |
解释 |
vbUseSystem | 0 | 使用NLS API(国家语言支持应用程序接口)设置 |
vbsunday | 1 | 星期日(默认,如果未声明参数) |
vbmonday | 2 | 周一 |
vbTuesday | 3. | 周二 |
vbWednesday | 4 | 星期三 |
vbhthursday | 5 | 周四 |
vbFriday | 6 | 星期五 |
vbsaturday | 7 | 周六 |
下表列出了可选参数“Firstweekofyear”的可能值,你可以在你的VBA程序中使用。看一看
不变 | 值 | 解释 |
vbUseSystem | 0 | 使用NLS API设置 |
vbFirstJan1 | 1 | 含有1月1日的一周 |
vbfirstfourdays. | 2 | 一年中至少有4天的第一周 |
vbFirstFullWeek | 3. | 今年的第一周 |
以下是Excel VBA中的日期的格式函数的一些示例,以使此功能更加清晰。
1.Format(#24/03/2014#, " Short Date ")会返回24/03/2014
2.Format(#24/03/2014#, " Long Date ")将返回' March 24, 2014 '
3.Format(#24/03/2014#,“yyyy/mm/dd”)会返回“2014/03/24”
我们建议你在你自己的日期函数格式上找到更多的例子。这将帮助您更舒适地使用各种选项。这门课程与Mr Excel可以帮助你得到一个很好的Excel VBA例子。
用户自定义日期和时间格式功能
请注意,您还可以使用FORM格式函数的一些预定义体文进行日期和时间。这看起来像这样的语法
格式(表达、风格)
下表显示了日期和时间的用户定义的格式函数。仔细阅读
格式 | 解释 |
格式(现在,“m”) | 显示当前月份和日期 |
格式(现在,“mm”) | 在两位数字中显示当前月。 |
格式(现在,“嗯”) | 显示当前月的缩写名称 |
格式(现在,“mmmm”) | 显示当月的全名。 |
格式(现在,“DD / MM / YYYY”) | 以日/月的格式显示当前日期。 |
格式(现在,“嗯,d, yyyy”) | 显示本月,日,年格式的当前日期 |
格式(现在,“h:mm:ss tt”) | 以小时:分:秒的格式显示当前时间,并显示am/pm |
格式(现在,“月/日/年h:月:ss”) | 以小时:分钟:秒的格式显示当前日期和时间 |
让我们仔细看看使用简单的VBA程序的日期和时间的用户定义的格式函数。
Sub Newbutton_Click(ByVal sender As System。对象,ByVal e作为System.EventArgs)处理Button1。点击,Button2。点击,Button3。单击Label1。Text = Format(现在是“M”)Label2。Text = Format(现在,“MM”)Label3。Text = Format(现在是“MMM”)Label4。Text = Format(现在,“MMMM”)Label5。Text = Format(Now, "dd/MM/yyyy")Text = Format(现在,“MMM,d,yyyy”)Label7。Text = Format(现在,“h:mm:ss tt”)Label8。Text = Format(Now, "MM/dd/yyyy h: MM:ss tt")结束Sub
运行此程序时,它将以不同格式显示当前系统日期。
label1.text将显示3月24日标签2.text将显示03 label3.text将显示Mar Label4.Text将显示3月Label5.Text将显示34/03/2014 Label6.Text将显示Mar,24,2014 Label7.text将显示晚上12:49:23 PM Label8.Text将显示03/24/2014 12:49:23 PM
字符支持的VBA日期功能
VBA日期函数支持这些字符以显示日期和时间。这是一个很长的名单,所以请查看下表!
字符 | 例 | 描述 |
米 | 8 | 月(无零的数字) |
mm | 08 | 月(数值与零) |
嗯 | 9月 | 月(缩写为文本) |
mmmm. | 9月 | 月(全长文字) |
d | 6 | 日(无零的数字) |
dd | 06 | 日(带零的数字) |
DDD. | 星期三 | 日(缩写文字) |
德德德 | 星期三 | 天(全长文字) |
yy. | 14 | 年(最后2位数) |
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 |
让我们使用一个例子来帮助您更好地了解上表。
子Date_and_time()日期_example =现在()范围(“c1”)=格式(date_example,“mm.dd.yy”)范围(“c2”)=格式(date_example,“d mmmmyyyy”)范围(“C3”)=格式(date_example,“mmmm j,yyyy”)范围(“c4”)=格式(date_example,“ddddd”)范围(“c5”)=格式(date_example,“mmmm-yy”)范围(“c6”)= Format(date_example, "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
在此程序中,我们将系统日期和时间分配给date_example的date()。执行程序后,单元格将包含以下值
C1将包含03.24.14 C2将包含24 March 2014 C3将包含March 24 2014 C4将包含Mon 24 C5将包含March-14 C6将包含03.24.14 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。Date1是你的出生年份,Date2是当前日期。最后,你会得到以年、月和日为单位的年龄。
正如您刚才看到的,date和time的Format函数有多种选项。您可以选择要在程序中显示或使用的格式。熟能生巧总是如此。请自己尝试一下这些例子。如果你愿意的话在您继续使用VBA之前,请在VBA上获取更多手,这课程可以帮助您。一旦你准备好踩到一个档次,你可以尝试这个终极VBA课程。让我们知道怎么回事!