【发布时间】:2017-03-08 04:16:19
【问题描述】:
我需要使用 Excel 的 VBA 编辑器从我的计算机中读取时间数据,然后将数据解析为独立整数分别记录年、月、日、时、分、秒。 p>
在 C# 中,函数为 DateTime.Now;是否有等效的 VBA?
【问题讨论】:
我需要使用 Excel 的 VBA 编辑器从我的计算机中读取时间数据,然后将数据解析为独立整数分别记录年、月、日、时、分、秒。 p>
在 C# 中,函数为 DateTime.Now;是否有等效的 VBA?
【问题讨论】:
这应该可以帮助您:
Sub ShowTime()
Dim myYear As Long
myYear = Year(Now)
Debug.Print myYear
Dim myMonth As Long
myMonth = Month(Now)
Debug.Print myMonth
Dim myDay As Long
myDay = Day(Now)
Debug.Print myDay
Dim myHour As Long
myHour = Hour(Now)
Debug.Print myHour
Dim myMinute As Long
myMinute = Minute(Now)
Debug.Print myMinute
Dim mySecond As Long
mySecond = Second(Now)
Debug.Print mySecond
Debug.Print Now
End Sub
【讨论】:
VBA.DateTime.Time 属性。除了mySecond 之外,您还隐式声明所有内容为Variant。
VBA.DateTime 模块有你需要的一切。
与在 Visual Studio 中一样,VBE 有自己的对象浏览器(F2 带您到那里) - 如果您查看VBA 标准库的内容,你会注意到一个名为DateTime的模块:
与所有标准库模块一样,VBA.DateTime 成员位于全局范围内,因此您不必明确限定它们:
Debug.Print Now
输出与以下内容完全相同:
Debug.Print VBA.DateTime.Now
...除非您自己的项目中有同名的函数。
在 C# 中 DateTime.Now 返回一个 DateTime struct,因此您只需执行 DateTime.Now.Year 即可获得年份 - 但是在 VBA 中,您不能在值类型上调用成员方法。相反,您使用 VBA.DateTime 模块函数来检索每个日期部分;它们都带有Date 参数-Wujaszkun's answer 显示它们的实际作用。
【讨论】: