You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 09:42:41