如何获取时间信息?

时间:2017-03-07 19:04:54

标签: vba excel-vba excel

我需要使用Excel的VBA编辑器从计算机中读取时间数据,然后将数据解析为独立整数分别记录年,月,日,时,分,秒。

在C#中,函数为DateTime.Now;是否有VBA等价物?

2 个答案:

答案 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的模块:

Object Browser

与所有标准库模块一样,VBA.DateTime成员生活在全球范围内,因此您不必明确限定它们:

Debug.Print Now

输出完全相同的东西:

Debug.Print VBA.DateTime.Now

...除非您在自己的项目中具有相同名称的功能。

在C#中DateTime.Now会返回DateTime 结构,所以你只需要DateTime.Now.Year来获得年份 - 但是在VBA中你无法调用值类型的成员方法。而是使用VBA.DateTime模块函数来检索每个日期部分;它们都采用Date参数 - Wujaszkun's answer显示它们的实际效果。