如何总是强制插入单元格中的特定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。