通过vba在excel中的“dd/mm/yyyy”日期格式
Posted
技术标签:
【中文标题】通过vba在excel中的“dd/mm/yyyy”日期格式【英文标题】:"dd/mm/yyyy" date format in excel through vba 【发布时间】:2014-09-28 10:14:57 【问题描述】:我正在尝试通过 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" fromat 传递值。
【问题讨论】:
在调试时,我得到两位数的值01/05/2014
【参考方案1】:
我明白了
Cells(1, 1).Value = StartDate Cells(1, 1).NumberFormat = "dd/mm/yyyy"
基本上,我需要设置单元格格式,而不是设置日期。
【讨论】:
【参考方案2】:您的问题是尝试通过在 Excel 中的日期序列中添加 1 来更改月份。1 等于 1 天。尝试使用以下方法更改您的月份:
NewDate = Format(DateAdd("m",1,StartDate),"dd/mm/yyyy")
【讨论】:
我必须添加天数,而不是月数...我在调试时获得了所需的结果,但是在将其插入 excel 时,格式不考虑日期和月份列中的 2 位数字StartDate
是什么类型的对象?可以试试:Format(StartDate+1,"dd/mm/yyyy")
,看看能不能得到你想要的格式?
您还可以使用范围的.NumberFormat
属性。例如,如果您希望格式化为 dd/mm/yyyy 的日期位于单元格 A1 中,则可以使用 Range("A1").NumberFormat = "dd/mm/yyyy"
。我不确定这与Format
有何不同(或为什么),这只是一个可能有帮助的建议。以上是关于通过vba在excel中的“dd/mm/yyyy”日期格式的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PHPExcel 库读取 excel 一个单元格日期(DD/MM/YYYY)值并将日期格式转换为(M/D/YYYY)