Как я могу использовать VBA RegExp (или другую функцию) в Excel, чтобы экранировать специальные символы? - PullRequest
0 голосов
/ 06 марта 2019

Мне нужно иметь возможность просматривать несколько диапазонов и добавлять «\» перед любым из этих символов # $% & _ {} ~ \ ^, которому еще не предшествует «\». Кто-нибудь может помочь? Я дурачился с этим в течение нескольких часов, и я знаю, что это должно быть просто для кого-то, кто более знаком с регулярными выражениями. Если есть другой простой способ, это тоже хорошо.

Ниже моя неудачная попытка сделать эту работу. Я думаю, что мне нужно включить обратные ссылки, но это меня смущает.

Function EC(code As Range)


    Dim strPattern As String: strPattern = "[^\\]+[#$%^&_{}\~]"
    Dim strReplace As String: strReplace = "[\]+[#$%^&_{}\~]"
    Dim myreplace As Long
    Dim strInput As String
    Dim Myrange As Range

    Set RegEx = CreateObject("VBScript.RegExp")

    For Each cell In code
        If strPattern <> "" Then
            strInput = cell.Value

            With RegEx
                .Global = True
                .MultiLine = True
                .IgnoreCase = False
                .Pattern = strPattern
            End With
            If RegEx.Test(strInput) Then
                 EC = (RegEx.Replace(strInput, strReplace))
            Else: EC = code.Value
            End If
        End If
    Next
    Set RegEx = Nothing
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...