有没有办法编程宏来将工作表中的所有日期转换为“2009 APR 01 00:00:00.000”到日期格式“dd-mmm-yyyy”?我有一个定期提取的数据集,40多列中的所有日期在2009年APR 01 00:00:00.000中基本没用,有关如何创建此类宏并能够与其他人共享的任何想法数据?
谢谢!
答案 0 :(得分:2)
看起来您的日期始终与字符串的长度相同。这是一个可能的解决方案:
orgDate = "2009 APR 01 00:00:00.000"
newDate = mid(orgDate,10,2) & "-" & mid(orgDate,6,3) & "-" & left(orgDate,4)
使用循环遍历每个单元格并执行上述字符串操作,然后将newDate放回单元格中。
答案 1 :(得分:2)
Function GetDateInMyFormat(exampleDate As String) As Date
On Error GoTo e
Dim year As String
Dim month As String
Dim day As String
Dim wantedDate As String
year = Mid(exampleDate, 1, 4)
month = Mid(exampleDate, 6, 3)
day = Mid(exampleDate, 10, 2)
wantedDate = year & "/" & month & "/" & day
GetDateInMyFormat = CDate(wantedDate)
Exit Function
e:
End Function
您可以创建XLA(XL插件)并将此功能添加为XL VBA的一部分 使用excel的addin对话框加载插件。这样,该功能将可用于工作簿。
并且,您可以在细胞上使用此功能,就像任何其他功能一样 如果您遇到任何问题,请告诉我。
用法:GetDateInMyFormat(“2009年4月1日00:00:00.000”) 返回4/1/2009
答案 2 :(得分:0)
假设Excel将它们识别为日期,您只需将单元格格式更改为正确的日期格式即可。突出显示列,右键单击 - >格式化单元格......
答案 3 :(得分:0)
我没有给你完整的答案,但这是我大致会做的事情: