Привет, я пытаюсь исправить свой код, чтобы сделать следующее (с некоторым контекстом)
В Excel есть 2 столбца: столбец P и столбец S. Длина обоих столбцов составляет тысячи и тысячи.
Столбец P - это многострочные текстовые строки (описания продуктов).
Столбец S - это многострочные текстовые строки (комментарии продуктов)
Мне нужно написать функцию vba, которая будет смотреть на ячейку в столбце P и возвращать точное совпадение строки, если есть совпадение, относящееся к значениям в столбце S.
Пример:
Используя регулярные выражения, я смог сделать это, сравнивая по одной строке за раз (от P3 до S3), используя следующий код:
Public Function RxMatch( _
ByVal SourceString As String, _
ByVal Pattern As String, _
Seperator As String, _
Optional ByVal IgnoreCase As Boolean = True, _
Optional ByVal MultiLine As Boolean = True) As Variant
Dim arrWords() As String
arrWords = Split(SourceString, separator)
Dim oMatches As MatchCollection
For Each word In arrWords
With New RegExp
.MultiLine = MultiLine
.IgnoreCase = IgnoreCase
.Global = False
.Pattern = Pattern
Set oMatches = .Execute(SourceString)
If oMatches.Count > 0 Then
RxMatch = oMatches(0).Value
Else
RxMatch = "No match"
End If
End With
Next word
End Function
однако вместо того, чтобы сравнивать P3 с S3 для совпадения, мне нужно сравнить P3 со всем столбцом S, чтобы увидеть, есть ли совпадения в каком-либо описании. Есть ли способ обновить этот код, который я предоставил, чтобы он соответствовал всему столбцу S вместо ячейки к ячейке?