我写了一个宏,它从物流代码中删除了所有非数字字符,并将剩下的数字相乘。在电脑上它是好的,在我的Mac上它不起作用。
这里的代码,可能有人可能会建议我为什么宏不能在mac上运行:
Function Bek(s)
Static re As Object
Dim x
If re Is Nothing Then
Set re = CreateObject("vbscript.regexp")
re.Pattern = "[0-9.,]+"
re.Global = True
End If
If re.test(s) Then
Bek = 1
For Each x In re.Execute(s)
Bek = Bek * Val(Replace(x, ",", "."))
Next
End If
End Function
我也可以根据您的要求附上文件。
P.S。发现了一些信息,mac os可能不支持正则表达式。
非常感谢您的帮助。
答案 0 :(得分:0)
试试这个。
它分裂并查看字符串的每个部分,并以我认为你想要的方式处理它 试一试,看看它是否有效
Sub ApplesWayOfRegex()
Str1 = "S10 2000*6000"
ReDim chars(Len(Str1) - 1)
For i = 1 To Len(Str1)
If (IsNumeric(Mid$(Str1, i, 1))) And i <> 1 Then
chars(i - 1) = Mid$(Str1, i, 1)
ElseIf (Not IsNumeric(Mid$(Str1, i, 1))) And i = 1 Then
chars(i - 1) = ""
Else
chars(i - 1) = "*"
End If
Next
Mathstr = Join(chars, "")
MsgBox Application.Evaluate(Mathstr)
End Sub