我已经开发了一个Excel 2010中VBA宏利用的VBScript.RegExp
。 我的一个用户显然是使用Excel的Mac 2011,支持VBA,但没有VBScript.RegExp
。
我见过几个职位,提到它可以创建使用自己的正则表达式功能AppleScript
,可以通过VBA宏调用。 然而,它好像有必须是Excel文件和一个Windows版本的Mac版本。 这是不理想的。
有没有办法实现VBA正则表达式,这将是与Windows和Mac兼容两者另一种方式?
我已经开发了一个Excel 2010中VBA宏利用的VBScript.RegExp
。 我的一个用户显然是使用Excel的Mac 2011,支持VBA,但没有VBScript.RegExp
。
我见过几个职位,提到它可以创建使用自己的正则表达式功能AppleScript
,可以通过VBA宏调用。 然而,它好像有必须是Excel文件和一个Windows版本的Mac版本。 这是不理想的。
有没有办法实现VBA正则表达式,这将是与Windows和Mac兼容两者另一种方式?
不幸的是,这个没有办法解决尚未发现-当前的解决方法是简单地用一系列的替代正则表达式Replace
电话(或其他所需的操作)。
我打了这个问题,试图想从一个细胞剥离HTML标记时要使用正则表达式库。
我知道这是没有问题的希望的用途中指出,但是,如果它是或未来的访客想更换一个正则表达式函数从标记细胞内的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
如果你不介意支付US $ 100,有Aivosto RegExpr 。 显然,这是一个纯粹的VBA的解决方案,应该PC和Mac VBA上运行。
另外,编写PC和Mac单独的解决方案,然后使用编译器指令分离其中的码位每个平台上运行