VBA MsgBox 重新格式化 dd/mm/yyyy 将输出格式化为 dd-mm-yyyy
VBA MsgBox reformats dd/mm/yyyy Format output to dd-mm-yyyy
对 VBA 很陌生。我想 MsgBox 调试是 VBA 等同于其他语言中的 print 语句调试?
如果我使用 Format
将日期转换为使用 dd/mm/yyyy
格式的字符串,然后使用 MsgBox 打印该字符串,它会以 dd-mm-yyyy
格式打印:
Function MsgBoxFormat()
Const dt As Date = "2022-04-01"
MsgBox (Format(dt, "dd/mm/yyyy"))
End Function
它似乎只对 Format
函数的结果执行此操作,并且仅当它使用 dd/mm/yyyy
格式时。其他格式和文字字符串不受影响:
Function MsgBoxFormat()
Const dt As Date = "2022-04-01"
MsgBox ( _
Format(dt, "dd/mm/yyyy") & vbNewLine & _
Format(dt, "dd-mm-yyyy") & vbNewLine & _
Format(dt, "yyyy-mm-dd") & vbNewLine & _
Format(dt, "dd mmm yyyy") & vbNewLine & _
"01/04/2022" _
)
End Function
我有点担心我从根本上误解了这里的 VBA。或者这是否与我的 PC 的区域设置有关?
这是 Access 数据库上的 VBA 7.1 运行。
那是因为“/”不是斜杠而是本地日期分隔符。使用武力:
MsgBox (Format(dt, "dd\/mm\/yyyy"))
对 VBA 很陌生。我想 MsgBox 调试是 VBA 等同于其他语言中的 print 语句调试?
如果我使用 Format
将日期转换为使用 dd/mm/yyyy
格式的字符串,然后使用 MsgBox 打印该字符串,它会以 dd-mm-yyyy
格式打印:
Function MsgBoxFormat()
Const dt As Date = "2022-04-01"
MsgBox (Format(dt, "dd/mm/yyyy"))
End Function
它似乎只对 Format
函数的结果执行此操作,并且仅当它使用 dd/mm/yyyy
格式时。其他格式和文字字符串不受影响:
Function MsgBoxFormat()
Const dt As Date = "2022-04-01"
MsgBox ( _
Format(dt, "dd/mm/yyyy") & vbNewLine & _
Format(dt, "dd-mm-yyyy") & vbNewLine & _
Format(dt, "yyyy-mm-dd") & vbNewLine & _
Format(dt, "dd mmm yyyy") & vbNewLine & _
"01/04/2022" _
)
End Function
我有点担心我从根本上误解了这里的 VBA。或者这是否与我的 PC 的区域设置有关?
这是 Access 数据库上的 VBA 7.1 运行。
那是因为“/”不是斜杠而是本地日期分隔符。使用武力:
MsgBox (Format(dt, "dd\/mm\/yyyy"))