Excel·VBA日期时间转换提取正则表达式函数

标准日期转换

vbnet 复制代码
Function 标准日期(ByVal str$) As Date
    Dim pat$, result$
    arr = Array("(\d{4}).*?(\d{1,2}).*?(\d{1,2})", "(\d{4}).*?(\d{1}).*?(\d{1,2})")
    If Len(str) < 8 Then pat = arr(1) Else pat = arr(0)
    With CreateObject("vbscript.regexp")  '正则表达式
        .Global = True
        .Pattern = pat
        result = .Replace(str, "$1/$2/$3")
    End With
    标准日期 = Format(result, "yyyy/mm/dd")
End Function

标准日期时间提取

vbnet 复制代码
Function 标准日期时间(ByVal str$) As Date
    Dim pat$, res$, result$, t&
    On Error Resume Next
    pat = "(\d{4}).*?(\d{1,2}).*?(\d{1,2}).*?(\d{1,2}).*?(\d{1,2}).*?(\d{1,2}).*"
    res = "$1/$2/$3 $4:$5:$6"
    With CreateObject("vbscript.regexp")  '正则表达式
        .Global = True
        .Pattern = pat
        Do
            result = .Replace(str, res): t = CLng(Mid(result, 1, 4))
            If CDate(result) = "0:00:00" Or t < 1900 Then str = Mid(str, 2) Else Exit Do
            If Len(str) < 6 Then result = "#Error": Exit Do  '没有日期
        Loop While Len(str) > 1
    End With
    标准日期时间 = Format(result, "yyyy/mm/dd hh:mm:ss")
End Function
相关推荐
kylezhao201913 小时前
C# Excel开源操作库MiniExcel使用教程
开发语言·c#·excel
Viooocc15 小时前
正则表达式
正则表达式
vvilkim15 小时前
开发中常用的正则表达式规则与应用
正则表达式
初级代码游戏15 小时前
VSTO(C#)Excel开发3:Range对象 处理列宽和行高
excel·vba·vsto
trabecula_hj17 小时前
SpreadVue实现内置excel在线编辑并保存为后端可以接受的json格式
json·excel·spreadjs·spreadvue
烟图黛螺19 小时前
VBA 数据库同一表的当前行与其他行的主键重复判断实现方案
数据库·oracle·vba
西西弗Sisyphus19 小时前
使用 Python pandas操作 Excel 文件
python·excel·pandas
初级代码游戏19 小时前
VSTO(C#)Excel开发2:Excel对象模型和基本操作
excel·vba·vsto
我不是彭于晏丶2 天前
蓝桥杯 Excel地址
职场和发展·蓝桥杯·excel
林深的林2 天前
正则表达式(1)
正则表达式