VBA格式日期:转换为你想要的类型!
VBA代表应用程序的Visual Basic。它不同于Visual Basic。微软提出了这一编程功能,用于微软办公软件套件。它可以用来创建在Microsoft Excel、Outlook或MS Office套件的其他组件上运行的程序。在这个中级教程中,我们将带您通过VBA格式的日期和时间功能。VBA格式函数接受表达式,日期或数字值,并将其转换为字符串。我们假设您了解MS Excel和Visual basic的基本概念。你可以了解更多关于VBA在这个优秀的课程,或者你很着急,你可以参加这个24小时的VBA培训师课程.
如何分配VBA日期值到一个变量
您可以在任何版本的Microsoft Excel中设置格式,从Excel 2000开始到Excel 2013版本。您可以将任何日期格式作为值分配给Excel VBA中的日期数据类型的变量。但是,要确保值放在简单散列(#)标记之间。这里VBA将值转换为“日期”,可以在比较和其他类型的语句中使用。下面的例子说明了这一点:
# D1 = #3/24 2014# D1 = #3/24 2014#
VBA将在2014年3月24日解释上述声明。在我们继续之前了解更多关于如何使用VBA与MS Excel,你可以试试这个入门课程;或者只是通过我们的VBA教程来提高你的理解.
VBA格式函数
Microsoft Excel Format函数接受日期表达式并将其作为格式化字符串返回。Format date函数的语法如下所示
格式(表达式,[Format, [firstdayofweek, [firstweekofyear]]])
让我们仔细看看参数。
- 表达式表示要格式化的值。
- 格式表示要应用于表达式的格式。它是可选的。在VBA格式日期功能中,您可以选择定义自己的格式或使用一些MS Excel预定义格式。
- Firstdayofweek指定一周的第一天。如果没有声明,Format函数假定Sunday是一周的第一天。可选参数。
- Firstweekofyear指定一年的第一个星期的值。但是,如果没有声明此参数,那么Format函数假定第一周从1月1日开始。
下面的表格显示了一些Excel预定义的日期格式。
格式 |
解释 |
一般的日期 | 根据系统设置显示日期 |
长时间的日期 | 根据系统的长日期设置显示日期 |
中日期 | 根据系统的中日期设置显示日期 |
短的日期 | 根据系统的短日期设置显示日期 |
长时间 | 根据系统的长时间设置显示时间 |
媒介的时间 | 根据系统的中间时间设置显示时间 |
短的时间内 | 根据系统的短时间设置显示时间 |
下面给出的表格包含了参数“firstdayoftheweek”可以在VBA程序中使用的值。
常数 |
价值 |
解释 |
vbUseSystem | 0 | 使用NLS API(国家语言支持应用程序接口)设置 |
VbSunday | 1 | Sunday(默认,未声明if参数) |
vbMonday | 2 | 周一 |
vbTuesday | 3. | 周二 |
vbWednesday | 4 | 周三 |
vbThursday | 5 | 周四 |
vbFriday | 6 | 星期五 |
vbSaturday | 7 | 周六 |
下表列出了可选参数“第一年的第一周,你可以在VBA程序中使用”的可能值。看一看
常数 | 价值 | 解释 |
vbUseSystem | 0 | 使用NLS API设置 |
vbFirstJan1 | 1 | 包含1月1日的一周 |
vbFirstFourDays | 2 | 一年中至少有四天的第一个星期 |
vbFirstFullWeek | 3. | 一年中的第一个完整的星期 |
下面是一些Excel VBA中日期格式功能的例子,让这个功能更清晰。
1.Format(#24/03/2014#, " Short Date ")将返回' 24/03/2014 '
2.格式(#24/03/2014#," Long Date ")将返回" March 24, 2014 "
3.Format(#24/03/2014#, " yyyy/mm/dd ")将返回' 2014/03/24 '
我们建议你写出更多关于日期函数格式的例子。这将帮助你更适应各种选择。这门课程与Excel先生可以帮助你得到一个很好的锻炼与Excel VBA的例子.
用户自定义格式日期和时间功能
注意,您还可以使用Format函数的一些预定义的日期和时间变体。它的语法是这样的
格式(表达、风格)
下表显示了用户定义的日期和时间格式函数。仔细阅读过
格式 | 解释 |
格式(现在,“M”) | 显示当前月份和日期 |
格式(现在,“毫米”) | 以两位数显示当前月份。 |
格式(现在,“嗯”) | 显示当前月份的缩写名称 |
格式(现在,“嗯”) | 显示当前月份的全称。 |
格式(“dd / MM / yyyy”) | 以日/月/年的格式显示当前日期。 |
格式(现在,“嗯,d, yyyy”) | 以月、日、年的格式显示当前日期 |
格式(Now, " h:mm:ss tt ") | 以hour:minute:second和show am/pm格式显示当前时间 |
格式(现在,“MM/dd/yyyy h: MM:ss”) | 以小时:分钟:秒的格式显示当前日期和时间 |
让我们使用一个简单的VBA程序来进一步了解用户定义的日期和时间格式函数。
subnewbutton_click (ByVal发送方作为系统。对象,ByVal e作为System.EventArgs)处理Button1。点击,Button2。点击,Button3。单击Label1。Text = Format(Now, "M") Label2。Text = Format(Now, "MM") Label3。Text = Format(Now, "MMM") Label4。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") End Sub . Format(Now, "MM/dd/yyyy h: MM:ss tt"
当您运行此程序时,它将以不同的格式显示当前系统日期。
Label1。文字将显示3月24日标签2。文本将显示03 Label3。文本将显示Mar Label4。文本将显示March Label5。文本将显示2014年3月24日的标签6。文字将显示2014年3月24日的标签7。文本将显示12:49:23标签8。文本将显示03/24/2014 12:49:23 PM
VBA日期功能支持的字符
VBA Date函数支持这些字符来显示日期和时间。这是一个相当长的列表,所以看看下面的表格!
字符 | 例子 | 描述 |
米 | 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的分钟数(0-59) |
神经网络 | 07 | 零分(00-59) |
年代 | 5 | 没有零的秒数(0-59) |
党卫军 | 05 | 零秒(00-59) |
AM / PM | 我 | 显示AM / PM |
让我们用一个例子来帮助您更好地理解上面的表格。
子date_and_time()现在date_example =()范围(C1) =格式(date_example“mm.dd.yy”)范围(C2) =格式(date_example“d mmmmyyyy”)范围(C3) =格式(date_example,“嗯j, yyyy”)范围(C4) =格式(date_example“ddddd”)范围(C5) =格式(date_example“mmmm-yy”)范围(C6) =格式(date_example,“mm.dd.yyyyhh:mm”)范围(“C7”)= Format(date_example,“m.d.yy h:mm AM/PM”)范围(“C8”)= Format(date_example,“h\Hmm”)结束子
在这个程序中,我们通过now()将系统日期和时间分配给变量date_example。程序执行后,单元格将包含以下值
C1将包含03.24.14 C2将包含2014年3月24日C3将包含2014年3月24日C4将包含3月14日C5将包含3 -14日C6将包含03.24.14 15:04 PM C8将包含15H04
下面给出了一个使用日期函数来计算你的年龄的例子。我们假定您有基本的编程知识。如果不是,请参考我们的VBA编程的基本教程。
VBA中计算年龄
Function Age(Date1 As Date, Date2 As Date) As String Date1 As Integer datmonth_1 As Integer datday1 As Integer Date1 As Date Temp As Date Temp = datesal(年(Date2),月(Date1),天(Date1)) (Date2)——每年台北= (Date1) +(临时> Date2) Month1 = (Date2)月(Date1) -(12 *(临时> Date2)) = (Date2)——天俊(Date1)如果俊< 0然后Month_1 = Month_1 - 1 =天俊(DateSerial(年(Date2)月(Date2) + 1, 0)) +俊+ 1结束如果年龄&“年”& =台北Month_1 &“月”& &俊“天”的功能
这个程序接受两个参数Date1和Date2。日期1是您的出生年份,日期2是当前日期。最后,你就得到了以年、月、日为单位的年龄。
正如您刚才看到的,用于日期和时间的Format函数有多种选项。您可以选择要在程序中显示或使用的格式。熟能生巧。你自己试试这些例子吧。如果你愿意的话在你继续之前得到更多的手与VBA,本课程可以帮助你.一旦你准备好升级,你就可以了试试这个终极VBA课程.让我们知道它的进展!