Цитата |
---|
tchack написал: как заставить работать поиск |
Объявлять процедуры обратного вызова так, как того требует спецификация(в Вашем случае не хватает второго аргумента - text As String):
Код |
---|
Public Sub CompactFindR(rc As IRibbonControl, text As String)
On Error Resume Next
If ActiveWorkbook Is Nothing Then
Msg = "Нет открытых книг Excel" & vbNewLine & _
"Сначала откройте книгу Excel, а потом уже запускайте поиск!"
MsgBox Msg, vbExclamation, "Поиск по всем листам книги"
Exit Sub
End If
txt = text
If Len(Trim(txt)) Then
' MsgBox "Получена команда поиска текста: " & txt, vbInformation
Dim coll As Collection: Set coll = SearchResults(txt)
If coll.Count Then
ReDim res(0 To coll.Count - 1, 0 To 3)
For I = 1 To coll.Count
arr = Split(coll(I), sep)
res(I - 1, 0) = I
res(I - 1, 1) = arr(1)
res(I - 1, 2) = arr(0)
res(I - 1, 3) = arr(2)
Next I
CompactFindForm.Caption = "Результаты поиска текста """ & txt & """"
CompactFindForm.Show
CompactFindForm.ListBox_Search.list = res
CompactFindForm.TextBox_count.text = coll.Count
Else
Msg = "Поиск завершён" & vbNewLine & _
"Текст """ & txt & """ не найден ни на одном из листов файла «" & ActiveWorkbook.name & "»"
MsgBox Msg, vbInformation, "Поиск по всем листам книги"
End If
End If
End Sub |