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
相关推荐
VBA633717 分钟前
VBA数据库解决方案第二十九讲 如何批量修改数据库中的数据
vba
偷心伊普西隆2 小时前
EXCEL 自动化链接更新工具设计方案
自动化·excel
ai_coder_ai2 小时前
如何在自动化脚本中使用excel文件?
excel·autojs·自动化脚本·冰狐智能辅助·easyclick
前端程序猿i2 小时前
纯JS 导出 Excel 工具
开发语言·javascript·excel
✎ ﹏梦醒͜ღ҉繁华落℘2 小时前
excel操作 ---删除空行
excel
Amumu1213813 小时前
Js:正则表达式(二)
开发语言·javascript·正则表达式
剑之所向18 小时前
DataEase 做大屏,只认 2 种 SQL 格式
数据库·sql·正则表达式
梦幻通灵1 天前
Excel工作表的复制实战【实用指南】
excel
ManageEngineITSM1 天前
功能越来越强,但 IT 使用体验却越来越差
大数据·excel·资产管理·itsm·工单系统