我需要在 excel vba 中获取系统正常运行时间,这可以在任务管理器上找到,如下所示:
我在网上找到了7年前的以下内容:
Public Declare PtrSafe Function GetTickCount Lib "kernel32" () As Long
Sub test()
Debug.Print GetTickCount()
End Sub
这个输出:206329937
如果我除以 8400,我得到 15 天,而实际上应该是 2 天 9 小时等等。
不确定出了什么问题。另请参阅在线内容,我应该使用 IF 公式来声明其是 64 位还是 32 位,但我也不确定如何执行此操作?
任何建议都会非常感谢。
更新: 原来前 6 个数字:206329 将转换为正确的时间。我不知道剩下的数字意味着什么有人知道吗?
Dim NewTime
NewTime = (Left(GetTickCount(), 6)) / 86400
Debug.Print NewTime
我尝试将时间转换为 dd:hh:mm:ss 格式,并且仅当其在工作表上格式化为自定义单元格格式时才有效。
非常奇怪,不知道为什么会出现这种情况,但这是我使用时得到的结果:
Debug.Print Format(NewTime, "DD:MM:HH:SS")
01:01:09:27
很混乱 !