VBA日期格式设置求助:如何输出dd/mm/yyyy而非mm/dd/yyyy
VBA日期格式显示错误的修复方案
你的问题出在两方面:一是Format函数的格式字符串用了空格分隔,导致Excel自动按系统区域规则解析日期;二是没有明确指定单元格的显示格式,让Excel自行判断了日期顺序。以下是两种可靠的修复方法:
方法1:保留日期可计算性(推荐)
直接写入原始日期值,再指定单元格的数字格式,这样单元格存储的是日期序列号(支持后续日期计算),同时按你要的日/月/年格式显示:
With ActiveSheet.Range("K23") .Value = Now() .NumberFormat = "dd/mm/yyyy" End With
方法2:生成文本格式日期(仅适合无需计算的场景)
如果不需要后续对该单元格做日期运算,可以先把单元格设为文本格式,再生成固定格式的日期字符串:
With ActiveSheet.Range("K23") .NumberFormat = "@" .Value = Format(Now(), "dd/mm/yyyy") End With
错误原因说明
你原代码用Format(Now(), "dd mm yyyy")生成的是类似07 03 2023的字符串,Excel会自动将其识别为日期,而解析时会遵循系统的区域设置(比如美式区域会把第二个数字当作月份),最终导致日和月的顺序颠倒。改用"dd/mm/yyyy"作为格式字符串,再配合单元格格式设置,就能强制显示日在前的日期格式。
内容的提问来源于stack exchange,提问作者Cooper
相关产品推荐
相关产品推荐

