Я надеялся получить помощь в редактировании этого полезного фрагмента кода:
Function ListSearchB(text As String, wordlist As String, Optional caseSensitive As Boolean = False)
Dim strMatches As String
Dim res As Variant
Dim arrWords() As String
arrWords = Split(wordlist)
On Error Resume Next
Err.Clear
For Each word In arrWords
If caseSensitive = False Then
res = InStr(LCase(text), LCase(word))
Else
res = InStr(text, word)
End If
If res > 0 Then
strMatches = strMatches & word
End If
Next word
If Len(strMatches) <> 0 Then
strMatches = Right(strMatches, Len(strMatches))
End If
ListSearchB = strMatches
End Function
Этот код отлично работает для того, что он делает в настоящее время. Сначала он выбирает текстовую строку для сравнения, затем выбирает массив слов, разделенных запятыми, которые он ищет, чтобы найти совпадения. Если какое-либо из слов в текстовой строке соответствует слову в массиве, оно вернет это совпадение.
Что я хочу добавить к этому, так это возможность выбрать первую ячейку с текстом, затем вторую ячейку с текстом, а затем сам массив и вернуть все совпадения из обеих выбранных ячеек, которые совпадают.
Я весь день пытался заставить его работать, но каждый раз получал ошибки.
пример будет выглядеть так:
A1: яблоки вкуснее, чем апельсины
B1: лучшая ягода - клубника
С1 (массив): яблоки, клубника, черника, персики, апельсины
D1 (выход): яблоки, апельсины, клубника