我有几个单元格,我在那些使用'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中使用这些日期进行计算。
请提出一些答案。
答案 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()
可能更灵活