Excel VBA - 将日期字符串转换为日期

时间:2016-05-10 12:47:25

标签: excel vba excel-vba

我在单元格中有许多字符串,这些字符串是日期,但需要将它们转换为日期格式。

它们采用以下格式:

mmm dd, yyyy

例如:

Feb 10, 2016

所以他们的长度可以是11或12:

Feb 1, 2016

我已经开始编写一个函数来单独解析字符串的每个部分(一天为整数,一个月为整数,一年为整数),然后转换为日期格式。

首先,有没有比上面更简单/更流畅的方法呢?

如果没有更简单的方法,最好的是将3个字母的月份(例如2月或3月或4月)转换为月份数字(例如2或3或4)?因为这是我真正坚持的唯一一点。

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日