似乎有很多类似的问题,但似乎没有什么似乎回答这个问题。VBA将ddmmyyyy文本转换为日期
我已经创建了下面的子将文本列转换为日期。它适用于某些情况,即日期有8个字符(如10022017),但如果该值有7个字符(如1022017)则不适用。
任何想法都可以使用。
Sub convertDate()
'Find the last Row with data in a Column
Dim lastRow As Long
Dim i As Long
With ActiveSheet
lastRow = .Cells(.Rows.Count, ColumnSelect).End(xlUp).Row
End With
'convert column from string to date
For i = RowSelect To lastRow
Cells(i, ColumnSelect).Value = Format(Cells(i, ColumnSelect).Value, "00/00/0000")
Next i
End Sub
您好再次所有,仍然具有几个问题,理想的式似乎是= DATEVALUE(TEXT(A1, “00-00-0000”))如果例如A1 =例如02022017.仍然没有找到使用VBA执行此操作的最佳方法,因为所有内容似乎都针对截断的零问题运行。在此先感谢
谢谢,这是一种路径我在想的,只是不能完全片一起。 另一个想法是试图实现工作簿函数datevalue(文本(任何单元格值,“00-00-0000”) –
像这样'= IF(LEN(A1)= 8,TEXT(DATEVALUE(LEFT A1,2)& “/” &MID(A1,3,2) “/” &RIGHT(α-1,4)), “日/月/年”),TEXT(DATEVALUE(LEFT(A1,1)&“/ “&MID(A1,2,2)&”/“&RIGHT(A1,4)),”dd/mm/yyyy“))' –
或直接:'= DATE(RIGHT(A1,4),LEFT(RIGHT A1,6),2),LEFT(A1,LEN(A1)-6))'并将单元格格式设置为“dd/mm/yyyy”;) –