【发布时间】:2016-12-16 12:56:48
【问题描述】:
我写了一个宏,它从物流代码中删除所有非数字字符,并将剩下的数字相乘。 pc上没问题,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
我也可以根据您的要求附上一个文件。
附:发现一些信息,mac os可能不支持正则表达式。
非常感谢您的帮助。
【问题讨论】:
-
安德烈亚斯,也许你是对的,但如果你能帮助我就更好了。谢谢。
-
如果你能给我们输入数据和预期输出,我们可以帮助你,但现在有点不清楚。
-
所以我有一些代码,例如:S10 2000*6000, 114,3*6,3。宏会删除所有非数字符号,例如 S、*、空格,并将剩下的所有数字相乘:10x2000x6000。在 pc 上很好,在 mac 上没有,我想是由于不支持的正则表达式或其他原因。
-
@andreas 你显然错了,至少就包括支持成本在内的大多数事情而言。但是,如果您将 Mac 的使用限制为使用 Microsoft 软件,尤其是 Excel,那么您是对的。 Excel 的范围从在 Mac 上更好(最初开发它的地方)到几乎无法使用(Excel 2016 没有用于编辑宏的 VBE!!!但以前的版本大部分都可以)。
-
您的宏失败,因为 VBscript 正则表达式库在 Mac 上不可用。