假设我具有以下值:
1 min 7 sec
23 sec
6 hours 10 min 14 sec
我想返回:
7 sec
23 sec
14 sec
在VBA中有没有办法做到这一点?
如果不使用秒,分钟或小时,则可能不会始终存在。
即如果有60秒,只会说1分钟。如果恰好有60分钟,那只会说1个小时。
答案 0 :(得分: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
答案 1 :(得分:0)
Function POP(strInput As String) As String
Dim a() As String
a = Split(strInput, " ")
If UBound(a) > 0 Then
POP = a(UBound(a) - 1) & " " & a(UBound(a))
Else
POP = a(UBound(a))
End If
Erase a
End Function