【问题标题】:Excel VBA to find, replace epoch timestamp with date in stringExcel VBA查找,用字符串中的日期替换纪元时间戳
【发布时间】:2021-11-07 03:27:27
【问题描述】:

提前感谢您提供的任何帮助。几天来,我一直在用户论坛上闲逛,完全被难住了。 (另外,我是一个几乎不会拼写“VBA”的新手,但我正在努力!)

我有一个 Excel 电子表格,其中包含用户 cmets 线程的单元格。每条评论前面都有一个 10 位的纪元时间戳。单元格如下所示:

-用户1:我喜欢馅饼。 -用户2:我喜欢 蛋糕。 -用户1:派比蛋糕好。

我想要一个宏,它可以在每个单元格中找到所有纪元时间戳,并将它们替换为人类可读的日期和时间。

我有一个函数可以将一个纪元字符串转换为 Excel 时间(但时间戳必须是单元格中的唯一数据,并且它将日期/时间放在相邻的单元格中)和另一个查找 regEx 字符串的宏并用其他东西代替它。我不知道如何组合它们。

我的历元转换函数是这样的:

Function ux2pst(uts)
ux2pst = Format(DateAdd("s", uts, "12/31/1969 16:00:00"), "MM/DD/YYYY HH:MM")
End Function

我的正则表达式查找/替换应该是这样的,但我不知道如何在 regEx.Replace 语句中包含转换代码:

Sub replaceEpoch()
Dim regEx As Object
Dim r As Range, rT As Range

Set r = Range("B2", Cells(Rows.Count, "B").End(xlUp))

Set regEx = CreateObject("VBScript.RegExp")
regEx.Pattern = "\d{10}"
regEx.Global = True

For Each rT In r
    If rT.Value <> "" Then rT.Value = regEx.Replace(rT.Value, "CONVERTED DATE-TIME??")
Next rT
    
End Sub

我尝试了一些不同的方法,但都失败了。谁能指出我正确的方向?再次感谢。

【问题讨论】:

    标签: excel regex vba epoch


    【解决方案1】:

    您需要遍历正则表达式找到的epoch时间的所有匹配项,将它们传递给函数到ux2pst并用结果替换它们。

    Option Explicit
    
    Sub replaceEpoch()
    Dim regEx As Object
    Dim r As Range, rT As Range
    Dim mtch As Object
    
        Set r = Range("B2", Cells(Rows.Count, "B").End(xlUp))
    
        Set regEx = CreateObject("VBScript.RegExp")
        regEx.Pattern = "\d{10}"
        regEx.Global = True
    
        For Each rT In r
            If rT.Value <> "" Then
                For Each mtch In regEx.Execute(rT.Value)
                    rT.Value = Replace(rT.Value, mtch, ux2pst(mtch))
                Next mtch
            End If
        Next rT
    
    End Sub
    
    Function ux2pst(uts)
        ux2pst = Format(DateAdd("s", uts, "12/31/1969 16:00:00"), "MM/DD/YYYY HH:MM")
    End Function
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-01
      • 1970-01-01
      • 2012-04-03
      • 2018-02-18
      • 2013-11-15
      • 2020-09-14
      • 2012-11-22
      • 2014-11-18
      相关资源
      最近更新 更多