首页 > 解决方案 > 设置特定日期格式 VBA excel

问题描述

我有一个独特的问题,我无法在论坛中找到解决方案。我有一个 Excel 表,我通过列表选项输入日期。3 个单元格分别列出了日期(D1)、月份(M1)、年份(Z1)。我有一个按钮宏,它可以获取单元格的值,并且还通过 VLOOKUP 并行将月份名称转换为月份编号,因此输出是具有正确格式 (DD/MM/YYYY) 的字符串。我将 DateSerial 与 Format 结合使用。到目前为止,一切都很好!

Y1 = Format(DateSerial(Z1, M1, D1), "DD/MM/YYYY")

但是现在要将此字符串转换为我使用 CDate 的日期。如果我有美国的区域日期设置(格式 MM/DD/YYYY),那么 CDate 会将日期转换为本地时间格式。但是,我需要这种(DD/MM/YYYY)格式以供将来使用。无论本地日期格式如何,如何获得特定格式的输出?还有其他解决方案吗?提前非常感谢。

编辑: Y1 被声明为字符串。当它被声明为日期时,尽管格式条件,日期已经以区域格式出现。我还尝试了带有“”符号的格式函数,如下所示,但它给了我一个溢出错误。

Y1 = Format(DateSerial(Z1, M1, D1), DD / MM / YYYY)

标签: excelvba

解决方案


设置日期(没有格式):

Y1 = DateSerial(Z1, M1, D1)

然后到 Y1,应用您喜欢的格式,即:

dd/mm/yyyy

推荐阅读