为什么用InputBox输入日期时,日和月会颠倒?
我在尝试让用户通过一个InputBox在单元格中输入日期。我使用dd/M/yyyy格式。然而,每当InputBox接收到一个可能会把日和月互换的日期时,它就会这么做。
例如3/2/2026会变成2/3/2026,或变成2026年 3月 2日
Sub dateTest()
Range("A1").Value = InputBox("Input Date dd/M/yyyy")
End Sub
- 我的Excel日期区域设置为英文(香港特别行政区)dd/M/yyyy。与控制面板中的设置相同。
- 我的键盘设置是US QWERTY,但切换到UK QWERTY时也会发生同样的情况。
- 直接在单元格中输入时不会发生这种情况。
也尝试过:
Range("A1").Value = Format(InputBox("Input Date dd/M/yyyy"), "dd/MM/yyyy")
Range("A1").Value = InputBox("Input Date dd/M/yyyy", , Format(Now(), "dd/MM/yyyy"))
Range("A1").NumberFormat = "dd/MM/yyyy"
Range("A1").Value = InputBox("Input Date dd/M/yyyy")
解决方案
请记住,InputBox 总是返回文本,Excel会像按反向的美国日期格式来解析你的文本日期一样进行转换。
因此,使用 DateValue 将文本日期转换为一个真正的日期值,并按你的本地设置进行处理:
Sub dateTest()
Range("A1").Value = DateValue(InputBox("Input Date dd/M/yyyy"))
End Sub
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。