У меня есть документ Word на основе шаблона для счетов и база данных в Excel, содержащая две таблицы: Company и Person.
Я хочу поместить некоторую строку в текстовое поле в пользовательской форме в Word, которая затем будет искаться в Excel. Excel должен возвращать значения в MultiColumn-Listbox, расположенный в другой пользовательской форме (эта пользовательская форма будет отображаться только в том случае, если для искомой строки имеется более 1 результата).
Это код, который у меня есть в Word для запуска макроса, который фактически запускается:
CSearchText = UFCompanySearch.tbSearchCompany.Value 'Textbox -> Search-String
xlWB.Application.Run("SearchCompany")
Это работает только тогда, когда SearchCompany является подпрограммой или функцией без дополнительных спецификаций, поэтому
Function SearchCompany(SearchText As String)
не работает, так как я не могу запустить макрос следующим образом:
xlWB.Application.Run("SearchCompany("SomeCompany")") 'NOTE!
ПРИМЕЧАНИЕ. Это НЕ будет работать!
Чтобы заполнить Listbox в UserForm, я думаю, есть возможность заполнить его таблицей Excel, так что это должно как-то сработать.
Это проблема:
Я не могу ссылаться на Search-TextBox в пользовательской форме, которая находится в слове «Документ», как ни на «Doc!» ни "Док." работает. Вот так я не могу искать в ячейках строку. Это код, который я должен найти в ячейках, содержащих строку:
IF (InStr(xlComp.Cells(Row, 1), CSearchText) > 0) Or _
(InStr(xlComp.Cells(Row, 2), CSearchText) > 0) Or _
(InStr(xlComp.Cells(Row, 3), CSearchText) > 0) Then
Это ищет столбцы A-C для введенной строки. (Код, который я где-то нашел... Я слишком много искал, чтобы узнать, откуда ^.^)
Есть ли способ обратиться к пользовательской форме в Word или обходной путь, чтобы получить «SearchText» из пользовательской формы в Excel?
Я новичок в VBA, поэтому чем подробнее ваш ответ, тем больше вероятность, что я его пойму.