我试图将我的单元格的日期格式转换为csv格式--它们以csv格式传递,显示日期,而excel不承认它为日期(它将"Standard“显示为格式,日期在左侧对齐,因此excel中没有日期)。

Dim lr11 As Integer
Dim dates11 As Date
lr11 = WS1.Cells(WS1.Rows.Count, "C").End(xlUp).row
For dates11 = 2 To lr11
WS1.Cells(dates11, 3).Value = CDate(Cells(dates11, 3).Value)
Next dates11上面的代码有时在Test ()中工作,但是当在我的主Sub中使用时,我总是在所有单元格中得到“12:00 AM”而不是日期。
我做错了什么?
谢谢!
发布于 2022-04-26 13:55:28
如果字符串的格式类似于DD.MM.YYYY格式的日期,则可以拆分它们并使用DateSerial创建数字日期,如下所示:
Option Explicit
Public Function ConvertStringDDMMYYYYtoDate(ByVal InputString As String) As Date
Dim RetVal As Date
Dim Parts() As String
Parts = Split(InputString, ".")
If UBound(Parts) = 2 Then
RetVal = DateSerial(Parts(2), Parts(1), Parts(0))
If Not Format$(RetVal, "DD.MM.YYYY") = InputString Then
MsgBox "Input String is not a real date", vbCritical
RetVal = 0
End If
End If
ConvertStringDDMMYYYYtoDate = RetVal
End Function然后用它就像
For dates11 = 2 To lr11
WS1.Cells(dates11, 3).Value = ConvertStringDDMMYYYYtoDate(WS1.Cells(dates11, 3).Value)
WS1.Cells(dates11, 3).NumberFormat = "DD.MM.YYYY" ' format it however you like it to look like
Next dates11https://stackoverflow.com/questions/72014976
复制相似问题