Excel VBA从文件名提取date

我正在使用以下,获取文件名。

Dim wbName As String wbName = Left(ActiveWorkbook.Name, (InStrRev(ActiveWorkbook.Name, ".", -1, vbTextCompare) - 1)) 

一些文件名可能如下所示:

“CM CC跟踪日志FY 17-18-08.07.17”
“跟踪日志10-23-17”
“跟踪日志17-18美国汽车俱乐部 – 8-7-17”

我想弄清楚如何提取datestring,模式匹配使用正则expression式。

17年7月8日
17年10月23日
17年8月7日

你可以试试这个模式:

 \b(1[0-2]|0?[1-9])[-./](3[01]|[1-2]\d|0?[1-9])[-./](\d{2}|\d{4})\b 

假设你的例子中显示的date,

  • 是MDY格式,
  • M可以是1-12范围内的单数或双数数字,也可以是1到9的可选数字0
  • D将在1-31的范围内,可选的前导0为1-9
  • Y将是两位数字或四位数字

分隔符将在[-./]的集合中

如果您需要的话,MD和Y将处于不同的捕获组中。

如果没有足够的描述,你需要更具体。 例如,修改所有的分隔符都是一样的。

这个正则expression式会捕获你提到的所有date格式。 确保它是一个global

 (\d{1,2}[.,-]\d{1,2}[.,-]\d{1,2})