我在单元格中有许多字符串,这些字符串是日期,但需要将它们转换为日期格式。
它们采用以下格式:
mmm dd, yyyy
例如:
Feb 10, 2016
所以他们的长度可以是11或12:
Feb 1, 2016
我已经开始编写一个函数来单独解析字符串的每个部分(一天为整数,一个月为整数,一年为整数),然后转换为日期格式。
首先,有没有比上面更简单/更流畅的方法呢?
如果没有更简单的方法,最好的是将3个字母的月份(例如2月或3月或4月)转换为月份数字(例如2或3或4)?因为这是我真正坚持的唯一一点。
答案 0 :(得分:5)
在VBA中,您可以使用:cdate("Feb 10, 2016")
作为一个功能,这将是:
Public Function ConvertToDate(rng As Range) As Date
ConvertToDate = CDate(rng)
End Function
答案 1 :(得分:3)
使用Date
变量读取值,然后使用Format
函数根据需要格式化日期。
例如:
Sub test()
Dim D As Date
D = Range("A1").Value
MsgBox Format(D, "mm/dd/yyyy")
End Sub
如果我使用字符串" 2016年2月10日"运行代码在A1然后" 02/10 / 2016"显示在消息框中
答案 2 :(得分:2)
试试这个:
Sub test()
MsgBox Month(Datevalue("Feb 10, 2016"))
End Sub
这将给出:2
答案 3 :(得分:2)
你真的需要VBA吗? Excel为您提供了一个文本到日期功能=DATEVALUE()
,它确实识别 2016年2月10日。