Страницы: 1
RSS
ComboBox с поиском из нескольких листов
 
Здравствуйте. Подскажите можно ли сделать так, чтобы при вводе в ComboBox поиск проходил по подходящим значениям на нескольких листах?
 
Цитата
Voltz написал:
чтобы при вводе в ComboBox
В какой КомбоБокс? Что вводить?  Что заполнять?
 
В любой ComboBox зайдите и введите любую букву, например "б", поиск будет проходить на "Лист1", а надо на чтобы искал и на "Лист2", на "Лист3". Взял от сюда https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=76971&MID=s
 
Цитата
Voltz написал:
а надо на чтобы искал и на "Лист2", на "Лист3".
Заполняйте на комбобокс данными с нескольких листов, тогда и будет выбирать значения с нескольких листов на.
Изменено: Михаил Лебедев - 29.09.2020 07:00:06 (добавил файл-пример)
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
А если название листов будет не "Лист1", "Лист2", "Лист3". А допустим яблоко, груша, лимон, как тогда быть?
 
Использовать внутренние имена листов
 
А в коде, где-то можно прописать списком нужные листы? Подскажите как?

Перенести форму в свою книгу почему то не запускается, ругается на это "cmbSource As New ADODB.Recordset", и выдаёт ошибку "user-defined type not defined".  Что не то делаю?
 
Цитата
Voltz написал:
Что не то делаю?
Думаю, что ADODB - это объект, который лежит в библиотеке, которую нужно сначала прикрутить к Вашему файлу. Откройте окно VBA, там - Tools>References. Скорее всего у Вас перед Microsoft ActiveX Data Objects... стоит слово "MISSING:"
Либо надо библиотеку цеплять (в т.ч. всем, кто будет пользоваться этим файлом), либо отказаться от использования ADODB. Заменив его, например, на просто массив(ы). Код придется переделывать.
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Voltz написал:
прописать списком нужные листы
Способов много.
1. Сделать список листов на листе екселя и забрать его потом в массив.
2. Ввести строковую константу, в которую записать названия листов ч/з запятую, а потом забрать их в массив с помощью Split().
3. Использовать функцию Array() и внести с помощью нее названия листов в массив.
Пройтись по массиву циклом, как прошлись циклом по названиям листов книги.
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Михаил Лебедев написал:
либо отказаться от использования ADODB. Заменив его, например, на просто массив(ы). Код придется переделывать.
код не смогу переделать, знаний нет. Если только кто-то переделает. Но проблему решил нужно было поставить галочку в "VBA, Tools>References, ставим галочку microsoft activex data objects 2.8 library
Страницы: 1
Наверх