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
使用Date
variables来读取该值,然后使用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日 。