如何在插入的单元格中强制使用特定的日期格式?

时间:2015-11-05 20:16:58

标签: excel excel-vba date vba

当我使用VBA在Excel单元格中插入新的类似日期的值时,日期格式永远不会一致且正确。

如何更改该单元格的日期格式并确保插入的值是实际日期而不是字符串表示形式?

2 个答案:

答案 0 :(得分:1)

以下是解决方案

首先,如果你想确定你插入的值确实是一个日期,那就做一个简单的测试:

String dates[] = new String[homework.length];
String subjects[] = new String[homework.length];
for (int i = 0; i < homework.length; ++i) {
    dates[i] = homework[i][0];
    subjects[i] = homework[i][1];
}

然后更改要在工作表(WS)中插入的单元格的实际数字格式:

    If IsDate(valueToInsert) Then

您现在需要做的就是在上面格式化的单元格中正确插入值:

    WS.Range(WS.Cells(row, col).Address).NumberFormat = "dd/MM/yyyy" 'for example

以下是完整的解决方案。

     WS.Cells(row, col) = CDate(Format(valueToInsert, "dd/MM/yyyy")) 'same dateformat

我希望这可以帮助我,因为它帮助了我:)。

答案 1 :(得分:0)

设置范围的数字格式。

Sheet1.Range("A2").NumberFormat = "yyyy-mm-dd"

然后格式化进入的数据。

szDate = "1/1/2001"
Sheet1.Range("A2").Valeu = Format(szDate, "yyyy-mm-dd")

要获得您想要的确切格式,您可以在通过右键单击设置宏时录制宏 - &gt;格式工具。