如何总是强制插入单元格中的特定date格式?

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

我怎样才能改变单元格的date格式,并确保插入的值是一个真正的date,而不是它的string表示forms?

这是解决scheme

首先,如果你想确定你插入的价值确实是一个date做一个简单的testing:

If IsDate(valueToInsert) Then 

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

  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 

以下是完整的解决scheme。

  If IsDate(valueToInsert) Then WS.Range(WS.Cells(row, col).Address).NumberFormat = "dd/MM/yyyy" WS.Cells(row, col) = CDate(Format(valueToInsert, "dd/MM/yyyy")) Else WS.Cells(row, col) = valueToInsert End If 

我希望这可以帮助一个人,因为它帮助我:)

设置范围的数字格式。

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

然后格式化进入的数据。

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

要获得您想要的确切格式,您可以录制一个macros,而您通过右键单击 – >格式工具来设置一个macros。