Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2011, 16:06   #1
alyam
Пользователь
 
Регистрация: 19.04.2011
Сообщений: 13
По умолчанию combobox порядковый номер элемента

есть combobox. заполняется из списка на листе. надо определить порядковый номер элемента списка. как сделать?
alyam вне форума Ответить с цитированием
Старый 19.04.2011, 16:12   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Комбобоксы бывают разные...

Смотрите пример для обоих типов:



В желтых ячейках - то, что вы просили.
EducatedFool вне форума Ответить с цитированием
Старый 19.04.2011, 17:04   #3
alyam
Пользователь
 
Регистрация: 19.04.2011
Сообщений: 13
По умолчанию

чет кривовато получается у меня.... находить значение элемента в списке, а потом обращаться на другой лист за значением в ячейках... а не проще ли все данные, которые мне необходимо загрузить в массив, а потом просто обращаться к необходимому индексу массива?
смотрите. есть таблица.
фамилия имя отчество должность
зеленков михаил юрьевич директор
касьянов валерий михайлович подчиненный
и т.д.

в комбобоксе я формирую список из фамилий при инциализации формы.
мне нужно при изменении значения в комбобоксе присваивать нужной мне ячейке имя и отчество, соответствующее выбранной фамилии. это так... простейший вариант поставленной задачи.
что-то типа хэш в перле, если вы знакомы... здесь как-то запутаннее...
а да... чуть не забыл. размерность массива величина не постоянная.

Последний раз редактировалось alyam; 19.04.2011 в 17:08.
alyam вне форума Ответить с цитированием
Старый 22.04.2011, 10:15   #4
alyam
Пользователь
 
Регистрация: 19.04.2011
Сообщений: 13
По умолчанию

помогите кто нить. а?
alyam вне форума Ответить с цитированием
Старый 22.04.2011, 10:34   #5
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Например, двухколоночный комбобокс: 1-я колонка - номер строки диапазона-источника, 2-я - значение 1-го столбца диапазона (фамилия). Тогда комбобокс1.Value будет номер нужной строки. Ну а по строке находим имя, отчество и пр.
Или уж всю таблицу в комбо, а ячейку заполняем из выбранной строки (св-во List).
nilem вне форума Ответить с цитированием
Старый 22.04.2011, 11:23   #6
alyam
Пользователь
 
Регистрация: 19.04.2011
Сообщений: 13
По умолчанию

а есть ли возможность сделать так: массив (фамилия, имя, отчество). т.е. туда записывать значение по столбцам.
коллекция - это строки таблицы. получается состоит из множества массивов. Коллекция(массив1,массив2,массив3.. .)
обращение к нужному элементу таблицы происходит по ключу. это было бы очень удобно. Например, вот я выбираю значение в комбобоксе Иванов. По ключу Иванов я обращаюсь к элементу массива. и записываю его в нужную мне ячейку.

Последний раз редактировалось alyam; 22.04.2011 в 11:26.
alyam вне форума Ответить с цитированием
Старый 22.04.2011, 12:39   #7
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Цитата:
Сообщение от alyam Посмотреть сообщение
а есть ли возможность сделать так: массив (фамилия, имя, отчество). т.е. туда записывать значение ...
Скорее всего возможно, вариантов - навалом.
nilem вне форума Ответить с цитированием
Старый 22.04.2011, 14:14   #8
alyam
Пользователь
 
Регистрация: 19.04.2011
Сообщений: 13
По умолчанию

а как? научите пжлста )
alyam вне форума Ответить с цитированием
Старый 22.04.2011, 14:50   #9
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

да и пожалста

грузите фамилии в сомбобокс
combo.list=[a1:a999]
остальную таблицу в массив
ar=[b1:f999]
при выборе в комбо элемент combo.listindex указывает на номер
так как listindex начинается от нуля, а массив (при таком присваивании) с 1

то остальные параметры будут находится так: ar(combo.listindex+1,1),
ar(combo.listindex+1,2) и т.д.

для нахождения последней строки можно воспользоваться методом:

lastrow=cells(rows.count,1).end(xlu p).row
slan вне форума Ответить с цитированием
Старый 22.04.2011, 15:09   #10
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Еще вариантец.
Вложения
Тип файла: zip Книга2.zip (11.4 Кб, 52 просмотров)
nilem вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Порядковый номер последней точки текста ofenod Паскаль, Turbo Pascal, PascalABC.NET 3 30.03.2011 08:27
Определить порядковый номер 1-го положительного элемента массива А BaNNeD Помощь студентам 4 19.12.2010 19:10
Порядковый номер записи Yur@ БД в Delphi 4 25.12.2009 08:37
порядковый номер недели skalt12 Общие вопросы Delphi 7 01.12.2009 16:52
Порядковый номер item-a. blackstersl Общие вопросы Delphi 1 05.06.2009 20:55