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

meg*_*n77 1 excel vba excel-vba

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

它们采用以下格式:

mmm dd, yyyy
Run Code Online (Sandbox Code Playgroud)

例如:

Feb 10, 2016
Run Code Online (Sandbox Code Playgroud)

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

Feb 1, 2016
Run Code Online (Sandbox Code Playgroud)

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

首先,有一种比上面更容易/更光滑的方法吗?

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

Dar*_*ook 5

在VBA中你可以使用: cdate("Feb 10, 2016").
作为一个功能,这将是:

Public Function ConvertToDate(rng As Range) As Date

    ConvertToDate = CDate(rng)

End Function
Run Code Online (Sandbox Code Playgroud)

  • 为什么不直接使用`CDate(rng)`? (2认同)
  • @arcadeprecinct因为你不能从工作表中调用VBA函数 - 它们必须包装在这样的UDF中. (2认同)