如何在VBA中为宏编程定义自定义日期时间对象

时间:2016-07-30 09:11:59

标签: vba excel-vba macros excel

我正在学习VBA基础知识。我有变量中的日,月,年,小时,分钟,秒数据。如何从这些值构造日期时间对象?

1 个答案:

答案 0 :(得分:3)

通常,日期只会表示为Date数据类型。日期存储为双精度数,表示自1899年12月31日以来的天数。时间表示为一天的一小部分,例如上午6:00由.25表示。

然后,您可以使用

等方法为Date变量赋值
Dim myDate As Date
myDate = Now()
myDate = DateValue("30 July 2016")
myDate = DateSerial(2016,7,30)
' or even myDate = DateSerial(2016,7,30+20) which is equivalent to myDate = DateSerial(2016,8,19)
myDate = TimeValue("19:22:56")

或者如果您有包含年,月,日等的变量,您可以将日期值计算为

myDate = DateSerial(myYear, myMonth, myDay) + TimeSerial(myHour, myMinute, mySecond)

如果您不想使用Date数据类型,可以使用类似

的内容创建自己的数据类型
Type myDateType
    myDay as Integer
    myMonth as Integer
    myYear as Integer
    myHour as Integer
    myMinute as Integer
    mySecond as Integer
End Type

然后通过类似

的方式声明变量
Dim myDateVariable as myDateType

并通过类似

的方式引用该类型的各个部分
myDateVariable.myYear = 2016