|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.05.2010, 08:46 | #1 |
Форумчанин
Регистрация: 11.02.2008
Сообщений: 119
|
Автоподстановка
Добрый день! Подскажите, пожалуйста, как создать следующую обработку.
Имеется перечень всех субъектов Российской Федерации (отсортированный по алфавиту, хранить перечень субъёктов предполагается в массиве), при вводе в ячейку (столбец) буквы "Н" автоматически подставляется "Новгородская" (под "подставляется" подразумевается дописывание слова, по аналогии со стандартной функцией excel, когда вводишь ранее введённое значение), далее вводятся "ово", в ячейку подставляется "Новосибирская", нажимаешь enter значение выбрано - "Новосибирская". |
14.05.2010, 10:27 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
|
14.05.2010, 10:48 | #3 |
Форумчанин
Регистрация: 11.02.2008
Сообщений: 119
|
То есть, если мне необходимо заполнять огромную таблицу, используя данный метод, нужно будет нарисовать множество ComboBox и для каждого прописать приведённый код?
|
14.05.2010, 10:52 | #4 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Цитата:
Будет 1 комбобокс - по умолчанию он скрыт (размеры 0*0) При выделении любой ячейки из нужного диапазона, по событию Worksheet_SelectionChange, комбобокс подгоняется по размерам под выделенную ячейку, и располагается прямо поверх неё. После завершения ввода (по нажатию Enter) - по событию ComboBox1_KeyDown - введённые данные попадают в ячейку под комбобоксом, а сам он скрывается (ставятся вновь размеры 0*0) |
|
14.05.2010, 11:36 | #5 |
Форумчанин
Регистрация: 11.02.2008
Сообщений: 119
|
К сожаления я слаб в коде (даже в этом не разобрался ) не поможете реализовать выше описанную возможность? А то я даже новую область не понимаю как можно добавить в список
|
14.05.2010, 11:37 | #6 |
Форумчанин
Регистрация: 11.02.2008
Сообщений: 119
|
Как добавить область нашёл Даже понял как перенести на другой лист список А вот чтобы поле исчезало и появлялось не понимаю как реализовать
Последний раз редактировалось Flangini; 14.05.2010 в 11:45. |
14.05.2010, 13:57 | #7 | |
Форумчанин
Регистрация: 11.02.2008
Сообщений: 119
|
Цитата:
|
|
14.05.2010, 15:38 | #8 |
Форумчанин
Регистрация: 11.02.2008
Сообщений: 119
|
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Me.ComboBox1.Left = 0 Me.ComboBox1.Top = ??? End Sub Скажите, как заставить ComboBox двигаться в соответствии с выбранной ячейкой? |
14.05.2010, 16:21 | #9 |
Форумчанин
Регистрация: 11.02.2008
Сообщений: 119
|
Мне удалось придумать только такой вариант:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim a As Single Me.ComboBox1.Left = 0 a = ActiveCell.Row Me.ComboBox1.Top = (a - 1) * 12.75 End Sub |
14.05.2010, 20:30 | #10 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Вот вам готовый пример:
Выделите любую ячейку в диапазоне b2:b350 - и увидите результат. Код совсем несложен: Код:
PS: Вот ещё пример поиска подходящих записей в момент ввода данных в "ячейку": Попробуйте в этом примере ввести в ячейку B4 число 255 |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Автоподстановка | Fezdipekla | Microsoft Office Access | 2 | 20.04.2010 18:10 |
Автоподстановка | Nightwolf | Microsoft Office Access | 3 | 19.04.2009 12:11 |
DBMemo автоподстановка | John_chek | Компоненты Delphi | 3 | 25.01.2007 13:41 |