работает благодарю !
только условия поиска нужно все равно править
пока ищет только в начале слова или словосочетания в ячейке (ранее проверял сначала только на еденичных словах в ячейках) те в словосочетаниях в середине или в конце не ловит
те видимо надо так
1)Часть текста - поиск в любом месте части текста целого слова в любом месте словосочетания
"*" & Me.TextBox1.Value & "*"
2)Полный текст - поиск в любом месте полный текст целого слова в любом месте словосочетания
доделал "*" & " " & Me.TextBox1.Value & " " & "*" но вообще так надо ("*" & " " & Me.TextBox1.Value & " " & "*") Or (Me.TextBox1.Value & " " & "*") Or ("*" & " " & Me.TextBox1.Value) но VBA не принимает так. Прописал так
Код |
---|
FoundRanges = FindAllOnWorksheets(ThisWorkbook, sSheets, sRange, "*" & " " & Me.TextBox1.Value & " " & "*")
i = 0
For N = LBound(FoundRanges) To UBound(FoundRanges)
If Not FoundRanges(N) Is Nothing Then
For Each FoundCell In FoundRanges(N).Cells
With Me.ListBox1
.AddItem
.Column(0, i) = FoundCell.Worksheet.Name
.Column(1, i) = FoundCell.Address(False, False)
.Column(2, i) = FoundCell.Value
i = i + 1
End With
Next FoundCell
End If
Next N
FoundRanges = FindAllOnWorksheets(ThisWorkbook, sSheets, sRange, Me.TextBox1.Value & " " & "*")
t = 0
For F = LBound(FoundRanges) To UBound(FoundRanges)
If Not FoundRanges(F) Is Nothing Then
For Each FoundCell In FoundRanges(F).Cells
With Me.ListBox1
.AddItem
.Column(0, t) = FoundCell.Worksheet.Name
.Column(1, t) = FoundCell.Address(False, False)
.Column(2, t) = FoundCell.Value
t = t + 1
End With
Next FoundCell
End If
Next F
FoundRanges = FindAllOnWorksheets(ThisWorkbook, sSheets, sRange, "*" & " " & Me.TextBox1.Value)
j = 0
For O = LBound(FoundRanges) To UBound(FoundRanges)
If Not FoundRanges(O) Is Nothing Then
For Each FoundCell In FoundRanges(O).Cells
With Me.ListBox1
.AddItem
.Column(0, j) = FoundCell.Worksheet.Name
.Column(1, j) = FoundCell.Address(False, False)
.Column(2, j) = FoundCell.Value
j = j + 1
End With
Next FoundCell
End If
Next O
|
Но так тоже не ищет текст- ловит только последний блок
"*" & " " & Me.TextBox1.Value
Как прописать все 3 условия в коде ?
Поправил файл
Осталась 2 доделки
- как прописать 3 условия на поиск полный текст
- при большой таблице поиск по части текста - притормаживает набор текста в поле Значения поиска - хотя везде поставил где можно Application.ScreenUpdating и прочее