Excel VBA – 将datestring转换为date

我有一些单元格中的string是date,但他们需要转换为date格式。

它们的格式如下:

mmm dd, yyyy 

例如:

 Feb 10, 2016 

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

 Feb 1, 2016 

我已经开始编写一个函数来分别parsingstring的每个部分(天为整数,月份为整数,年份为整数),然后转换为date格式。

首先,有没有比上面更容易/更轻松的方法来做到这一点?

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

在VBA中,您可以使用: cdate("Feb 10, 2016")
作为一个function,这将是:

 Public Function ConvertToDate(rng As Range) As Date ConvertToDate = CDate(rng) End Function 

使用Datevariables来读取该值,然后使用Format函数来格式化date。

例如:

 Sub test() Dim D As Date D = Range("A1").Value MsgBox Format(D, "mm/dd/yyyy") End Sub 

如果我在A1中运行string“2016年2月10日”的代码,则在消息框中显示“02/10/2016”

尝试这个:

 Sub test() MsgBox Month(Datevalue("Feb 10, 2016")) End Sub 

这将给: 2

你真的需要VBA吗? Excel为您提供了文本到date函数=DATEVALUE() ,它确实承认2016年2月10日