Подтвердить что ты не робот

Как разработать макрос Excel, который содержит регулярные выражения, чтобы он работал в Windows и Mac

Я разработал макрос Excel 2010 VBA, который использует VBScript.RegExp. Один из моих пользователей, по-видимому, использует Excel Mac 2011, который поддерживает VBA, но не VBScript.RegExp.

Я видел несколько сообщений, в которых упоминаются возможности создания собственных функций RegEx с помощью AppleScript, которые можно было бы вызывать с помощью макроса VBA. Однако кажется, что должна быть версия Mac для файла Excel и версия Windows. Это меньше, чем идеально.

Есть ли другой способ реализовать регулярные выражения в VBA, которые будут совместимы как с Windows, так и с Mac?

4b9b3361

Ответ 1

К сожалению, решение для этого еще не найдено - текущее обходное решение состоит в том, чтобы просто заменить регулярные выражения серией вызовов Replace (или другой требуемой операцией).

Ответ 2

Я столкнулся с этой проблемой, пытаясь использовать библиотеку regexp при попытке снять html-теги из ячейки.

Я знаю, что это не было отмечено в вопросе как желаемое использование, но в случае, если это или будущие посетители пытаются заменить функцию регулярного выражения, чтобы удалить HTML из тегов внутри ячейки в Mac Excel 2011, эта пользовательская функция будет работать. Извинения перед оригинальным автором, я нашел его только, но больше не могу найти источник, которого боюсь.

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

Ответ 3

Если вы не против платить 99 долларов США, есть Aivosto RegExpr. По-видимому, это чистая версия VBA, которая должна работать как на ПК, так и на Mac VBA.

В качестве альтернативы напишите отдельные решения как для ПК, так и для Mac, а затем используйте директивы компилятора, чтобы отделить, какой бит кода запускается на каждой платформе