如何删除某个字符前的文字?

Lun*_*Box -1 excel vba excel-vba

假设我有以下值:

1 min 7 sec
23 sec
6 hours 10 min 14 sec
Run Code Online (Sandbox Code Playgroud)

我想回来:

7 sec
23 sec
14 sec
Run Code Online (Sandbox Code Playgroud)

有没有办法在VBA中执行此操作?

如果未使用其值,则可能不会始终存在秒,分或小时.

即如果有60秒,它只会说1分钟.如果确切地说有60分钟,那就说1小时.

SJR*_*SJR 7

这是一个使用正则表达式的方法.它查找数字空格秒并返回连字符(如果未找到).适合修改.

修改了代码,以纳入@Mathieu Guindon的建议.+查找一个或多个实例,*为零或更多.

Function Regex1(v As Variant) As String

With CreateObject("vbscript.regexp")
    .Global = True
    .Pattern = "\d+\s*sec"
    If .Test(v) Then
        Regex1 = .Execute(v)(0)
    Else
        Regex1 = "-"
    End If
End With

End Function
Run Code Online (Sandbox Code Playgroud)