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"))