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
相关推荐
SuperEugene23 分钟前
Excel 上传解析 + 导出实战:Vue+xlsx 避坑指南|Vue生态精选
前端·javascript·vue.js·excel·xlsx·vxetable
领小24 分钟前
VS2022 MFC对话框应用OLE读写操作excel
c++·excel·mfc
一点 内容30 分钟前
企业级 Web Excel 多人实时在线协同:技术实现与核心突破
excel
TE-茶叶蛋38 分钟前
从零实现H5 表格协同编辑:Yjs + WebSocket 实战
websocket·小程序·excel
mr_LuoWei200944 分钟前
自定义的中文脚本解释器来实现对excel自动化处理(一)
python·自动化·excel
VBA63371 小时前
VBA之Word应用:在Word中,什么是Range对象
vba
softbangong1 小时前
901-excel编辑工具
microsoft·自动化·excel·办公自动化·数据处理·excel操作·excel工具
warm3snow2 天前
AI 重塑产品管理工具:从 Jira 到智能体项目经理的终极演进
人工智能·ai·excel·项目管理·飞书·产品经理·jira·协同·tapd
雨中飘荡的记忆6 天前
正则表达式入门到实战
正则表达式
LAM LAB13 天前
【VBA】Excel指定单元格范围内字体设置样式,处理导出课表单元格
excel·vba