我在Excel中有一个宏,该宏使用当前UTC时间(小时和分钟)作为字符串,最后将(以及其他内容)写为新Word文档中的文本。
目前,它在我的计算机上可以正常运行,但也可以在可能具有不同日期时间格式系统设置的其他计算机上使用。由于这些设置都无法更改,也无法完全看到所有不同的设置,因此我需要宏中的一部分,以便始终在末尾提供相同的格式。
我需要实现的格式是HHMM(24小时内,不是AM / PM),例如:1430。
如果系统时间采用以下格式,我现在拥有的代码将执行以下操作:“ DD / MM / YYYY HH:MM:SS”。不幸的是,它没有考虑其他因素,例如“ DD / MM / YYYY H:MM”。
有简单的方法可以解决此问题吗?
我现在拥有的代码如下。我在网上找到了此代码,而我在VBA上的知识不足,无法理解它的第一部分并使其适应我的需要。
Public Sub UTCtime()
Dim dt As Object, utc As Date, utcHOUR As String
Set dt = CreateObject("WbemScripting.SWbemDateTime")
dt.SetVarDate Now
utc = dt.GetVarDate(False)
utcHOUR = utc
utcHOUR = Replace(utcHOUR, ":", "")
utcHOUR = Replace(utcHOUR, " ", "")
utcHOUR = Right(utcHOUR, 6)
utcHOUR = Left(utcHOUR, 4)
utcHOUR = utcHOUR + "Z"
End Sub
最佳答案
dt.GetVarDate()
返回调整为UTC的Date
类型,这是格式无关的(直到强制为字符串),因此很简单:
strUTCTime = Format$(utc, "HHMM") & "Z"