Ответ 1
По умолчанию параметр "Регулярное выражение" отключен в слове 2007, чтобы включить эту операцию, выполните следующие шаги:
1). Перейдите в раздел Инструменты > Ссылки, как показано ниже.
2). Теперь поставьте галочку в опции "Microsoft VBScript Regular Expressions 5.5" и затем нажмите oh, как показано ниже.
3). Теперь вы можете создать объект RegExp в VBA script. Вы можете проверить его на поиск в базе данных объектов, как описано ниже. View > Object Browser (Или нажмите F2), как показано ниже.
и найдите объект RegExp
4). Объект RegExp использует регулярные выражения для соответствия шаблону. Следующие свойства предоставляются RegExp. Эти свойства задают шаблон для сравнения строк, которые передаются экземпляру RegExp:
a. Шаблон: Строка, определяющая регулярное выражение.
b. IgnoreCase: Логическое свойство, которое указывает, нужно ли тестировать регулярное выражение для всех возможных совпадений в строке.
c. Глобальный: Устанавливает логическое значение или возвращает логическое значение, указывающее, должен ли шаблон соответствовать всем вхождениям во всей строке поиска, или шаблон должен соответствовать только первому вхождению.
RegExp предоставляет следующие методы для определения того, соответствует ли строка определенному шаблону регулярного выражения:
d. Тест: Возвращает логическое значение, указывающее, может ли регулярное выражение успешно сопоставляться с строкой.
e. Выполнить: Возвращает объект MatchCollection, содержащий объект Match для каждого успешного совпадения.
Пожалуйста, найдите пример для RexExp, предоставленный в форуме Microsoft msdn.
Function TestRegExp(myPattern As String, myString As String)
'Create objects.
Dim objRegExp As RegExp
Dim objMatch As Match
Dim colMatches As MatchCollection
Dim RetStr As String
' Create a regular expression object.
Set objRegExp = New RegExp
'Set the pattern by using the Pattern property.
objRegExp.Pattern = myPattern
' Set Case Insensitivity.
objRegExp.IgnoreCase = True
'Set global applicability.
objRegExp.Global = True
'Test whether the String can be compared.
If (objRegExp.Test(myString) = True) Then
'Get the matches.
Set colMatches = objRegExp.Execute(myString) ' Execute search.
For Each objMatch In colMatches ' Iterate Matches collection.
RetStr = RetStr & "Match found at position "
RetStr = RetStr & objMatch.FirstIndex & ". Match Value is '"
RetStr = RetStr & objMatch.Value & "'." & vbCrLf
Next
Else
RetStr = "String Matching Failed"
End If
TestRegExp = RetStr
End Function
Я надеюсь, что это может помочь кому-то, потому что я потратил почти полдня на него.
Спасибо