如何开发包含正则expression式的Excelmacros,以便在Windows和Mac中使用
我开发了一个使用VBScript.RegExp
的Excel 2010 VBAmacros。 我的一个用户显然使用支持VBA的Excel Mac 2011,但没有VBScript.RegExp
。
我已经看到了几个职位,提到可以使用AppleScript
创build自己的RegEx函数,可以由VBAmacros调用。 但是,似乎必须有一个Mac版本的Excel文件和一个Windows版本。 这并不理想。
有没有另外一种方法可以在Windows和Mac兼容的VBA中实现正则expression式?
不幸的是,目前还没有find解决scheme – 目前的解决方法是简单地用一系列Replace
调用(或其他必需的操作)replace正则expression式。
我试图从单元格中去除html标签时尝试使用regexp库的这个问题。
我知道这个问题并没有被logging为期望的用途,但是,如果是或者未来的访问者试图用Mac Excel 2011中的单元格中的标签replace正则expression式函数来删除HTML,这个用户定义的函数将会起作用。 对原作者的道歉,我只是发现它,但不能再find我害怕的来源。
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
如果您不介意支付99美元,那么就是Aivosto RegExpr 。 显然这是一个纯粹的VBA解决scheme,应该可以在PC和Mac VBA上运行。
另外,为PC和Mac编写单独的解决scheme,然后使用编译器指令来分离在每个平台上运行的代码位
- 正则expression式分隔函数中的参数
- 一个正则expression式replace可以运行在一个范围,而不是循环在Excel中的单元格?
- 正则expression式来确定一个string是一个范围的名称还是一个单元格的地址
- 数据硝基和正则expression式(Python)
- 如何重复CSV文件中大行旁边的小行? (VLOOKUP函数,也许?)
- Pentaho Filter正则expression式Excelinput
- 正则expression式validation代码为Excelfile uploadjQuery
- 正则expression式与某些字符不匹配
- 使用正则expression式检查文件扩展名 – application / vnd.ms-excel