Excel:日期格式问题

时间:2013-02-22 14:42:19

标签: excel-vba vba excel

我有几个单元格,我在那些使用'FormatDatetime'函数填充日期,

代码:

Range("AX1") = FormatDateTime((Docx.getAttribute("r1ed")))
Range("AX2") = FormatDateTime((Docx.getAttribute("r2ed")))
Range("AX3") = FormatDateTime((Docx.getAttribute("r3ed")))
Range("AX4") = FormatDateTime((Docx.getAttribute("r4ed")))

如果日期以“。”分隔。所有单元格都显示为“12.1.2013”​​,但如果我更改系统日期格式用“ - ”分隔,“AX4”显示日期仍为“12.1.2013”​​。但其他单元格显示正确。

我需要对此进行修复,因为我稍后会在VBA中使用这些日期进行计算。

请提出一些答案。

1 个答案:

答案 0 :(得分:0)

我认为您的问题是FormatDateTime()会返回一个字符串,而是将其更改为DateValue()。如果Docx.getAttribute()的返回包含点,则需要先用斜杠替换它们。

因此;

'[AX1] is the same as Range("AX1")
[AX1] = DateValue(Docx.getAttribute("r1ed"))
[AX2] = DateValue(Docx.getAttribute("r2ed"))
[AX3] = DateValue(Docx.getAttribute("r3ed"))
[AX4] = DateValue(Docx.getAttribute("r4ed"))

或者,如果有点;

[AX1] = DateValue(Replace(Docx.getAttribute("r1ed"), ".", "/"))
[AX2] = DateValue(Replace(Docx.getAttribute("r2ed"), ".", "/"))
[AX3] = DateValue(Replace(Docx.getAttribute("r3ed"), ".", "/"))
[AX4] = DateValue(Replace(Docx.getAttribute("r4ed"), ".", "/"))

如果这不能解决问题,请您发布有关Docx.getAttribute()返回的更多信息。

编辑:另外,知道您需要包含单元格的格式会有所帮助 - 我假设适当的日期是可以接受的 - 您可能需要一个具有特定格式日期的字符串。如果是这种情况,你可以用上面的内容包装上面的内容;​​

[AX1] = Format(DateValue(Docx.getAttribute("r1ed")), "dd/mm/yyyy")

可能是FormatDateTime()背叛了你,Format()可能更灵活