我开发了一个使用VBScript.RegExp
的Excel 2010 VBA宏。我的一个用户显然使用支持VBA的Excel Mac 2011,但没有VBScript.RegExp
。
我看过几篇帖子提到可以使用AppleScript
创建自己的RegEx函数,这些函数可以由VBA宏调用。但是,似乎必须有Mac版本的Excel文件和Windows版本。这不太理想。
是否有另一种方法可以在VBA中实现与Windows和Mac兼容的正则表达式?
答案 0 :(得分:2)
不幸的是,还没有找到解决方案 - 当前的解决方法是简单地用一系列Replace
调用(或其他所需操作)替换正则表达式。
答案 1 :(得分:1)
尝试从单元格中删除html标记时,尝试使用regexp库时出现此问题。
我知道在问题中未注意到这是期望的用途,但是,如果是或将来访问者试图替换正则表达式函数以从Mac Excel 2011中的单元格内的标签中删除HTML,则此用户定义的函数将工作。向原作者道歉,我发现它只是但我再也找不到源了。
Public Function StripHTML(zDataIn As String) As String
Dim iStart As Integer
Dim iEnd As Integer
Dim iLen As Integer
Do While InStr(zDataIn, "<") > 0
iStart = InStr(zDataIn, "<")
iEnd = InStr(iStart, zDataIn, ">")
iLen = Len(zDataIn)
If iStart = 1 Then
zDataIn = Right(zDataIn, iLen - iEnd)
Else
If iLen = iEnd Then
zDataIn = Left(zDataIn, iStart - 1)
Else
zDataIn = Mid(zDataIn, 1, iStart - 1) & _
Right(zDataIn, iLen - iEnd)
End If
End If
Loop
StripHTML = zDataIn
End Function
答案 2 :(得分:0)
如果您不介意支付99美元,则有Aivosto RegExpr。显然,这是一个纯VBA解决方案,应该可以在PC和Mac VBA上运行。
或者,为PC和Mac编写单独的解决方案,然后使用compiler directives分隔每个平台上运行的代码位