【问题标题】:How to acquire the time of day information?如何获取一天中的时间信息?
【发布时间】:2017-03-08 04:16:19
【问题描述】:

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

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

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    这应该可以帮助您:

    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
    

    【讨论】:

    • 您的 sub 隐藏了内置的 VBA.DateTime.Time 属性。除了mySecond 之外,您还隐式声明所有内容为Variant
    • @Comintern 已修复
    【解决方案2】:

    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 显示它们的实际作用。

    【讨论】:

      猜你喜欢
      • 2019-09-29
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2011-11-30
      • 2019-07-18
      • 2022-12-10
      • 2013-01-15
      • 2011-11-01
      相关资源
      最近更新 更多