我需要使用Excel的VBA编辑器从计算机中读取时间数据,然后将数据解析为独立整数分别记录年,月,日,时,分,秒。
在C#中,函数为DateTime.Now
;是否有VBA等价物?
答案 0 :(得分:3)
这应该让你前进:
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
答案 1 :(得分:3)
VBA.DateTime
模块包含您需要的一切。
在Visual Studio中,VBE有自己的对象浏览器( F2 带你去那里) - 如果你看一下VBA
标准的内容库,你会注意到一个名为DateTime
的模块:
与所有标准库模块一样,VBA.DateTime
成员生活在全球范围内,因此您不必明确限定它们:
Debug.Print Now
输出完全相同的东西:
Debug.Print VBA.DateTime.Now
...除非您在自己的项目中具有相同名称的功能。
在C#中DateTime.Now
会返回DateTime
结构,所以你只需要DateTime.Now.Year
来获得年份 - 但是在VBA中你无法调用值类型的成员方法。而是使用VBA.DateTime
模块函数来检索每个日期部分;它们都采用Date
参数 - Wujaszkun's answer显示它们的实际效果。