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小时.
这是一个使用正则表达式的方法.它查找数字空格秒并返回连字符(如果未找到).适合修改.
修改了代码,以纳入@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)