首页 > 解决方案 > Excel - VBA:日期格式数字(yyyy-mm-dd)不适用于所有值

问题描述

我正在使用 VBA 根据同一个 XLS 文件中的其他工作表生成 XLS 工作表。这是非常基本的,除了以下之外所有的工作:

varSheetGeneratedCSV.Range("E" & j).NumberFormat = "yyyy/mm/dd;@"
varSheetGeneratedCSV.Range("F" & j).NumberFormat = "yyyy/mm/dd;@"

我传递的值是从表格的单元格中选择的,这些单元格的格式如下:

工作表在 E 和 F 列的单元格中获取预期值(j 是循环索引)。

但这是我的结果,取决于我无法指出的一些事情,可以吗?

输入:

结果:


输入:

结果:


知道为什么有区别吗?请注意,当我双击单元格的格式不正确并且不做任何更改时,按回车键,格式就会正确应用。

我可以在我的 VBA 中添加什么来获得要应用的单元格格式,就像我手动执行它时一样?

谢谢!

标签: exceldateformattingvba

解决方案


我设法通过日期函数生成日期来使其工作:

varSheetGeneratedCSV.Range("E" & j) = Year(varStartDate) & "/" & Month(varStartDate) & "/" & Day(varStartDate)

这每次都会输出正确的值。


推荐阅读