通过VBA在Excel中使用"dd/mm/yyyy"日期格式

9
我试图通过Excel VBA在Excel表格中以“dd/mm/yyyy”格式编写日期。我使用Cells(1, 1).Value = Format(StartDate, "dd/mm/yyyy")实现了它,我的单元格值为30/04/2014,这很好......但是有一些奇怪的问题...由于我必须每次将startDate增加1以遍历整个月份,所以下一个值变成了1/5/2014而不是01/05/2014,直到每个月的第12天12/5/2014,从第13天开始,月份再次变成两位数13/05/2014....我希望它都是两位数,因为我必须再次使用Range.Find方法搜索这些日期,其中我传递具有“dd/mm/yyyy”格式的值。

在调试时,我得到的值是带有两位数字的 01/05/2014 - deejay
2个回答

19

我明白了

Cells(1, 1).Value = StartDate
Cells(1, 1).NumberFormat = "dd/mm/yyyy"

基本上,我需要设置单元格的格式,而不是设置日期。


5

你遇到的问题是试图通过加1来更改月份。在Excel中,日期序列中的1等于1天。尝试使用以下方法更改月份:

NewDate = Format(DateAdd("m",1,StartDate),"dd/mm/yyyy")

我需要添加天数,而不是月份...在调试时我得到了所需的结果,但是当它插入Excel中时,日期和月份列的格式没有考虑到2位数字。 - deejay
StartDate是什么类型的对象?你可以尝试使用:Format(StartDate+1,"dd/mm/yyyy"),看看是否获得了你想要的格式? - Martin Jackson
1
您也可以使用范围的.NumberFormat属性。例如,如果您想将日期格式化为dd/mm/yyyy并且该日期位于A1单元格中,则可以使用Range("A1").NumberFormat="dd/mm/yyyy"。我不确定它与Format有什么区别(或为什么),这只是一个可能有帮助的建议。 - Soulfire

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接