【问题标题】:"dd/mm/yyyy" date format in excel through vba通过vba在excel中的“dd/mm/yyyy”日期格式
【发布时间】: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

标签: date excel vba


【解决方案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 有何不同(或为什么),这只是一个可能有帮助的建议。
    猜你喜欢
    • 2016-01-11
    • 2016-11-06
    • 2016-01-02
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    相关资源
    最近更新 更多