|
[Excel][UserForm] Как программно обойти только нужные элементы?
|
|||
---|---|---|---|
#18+
В книге вызывается форма по заполнению данными некой таблицы... В той форме есть различные элементы (TextBox, ComboBox, ListBox) для ввода данных, есть и кнопки управления... В таблице порядок следования колонок определён заранее. Как программно обойти в нужной последовательности все элементы редактирования, дабы записать их значения в ту таблицу? Может TabIndex как-то в этом поможет? Количество колонок в таблице ведь известно, количество элементов ввода данных такое же... ---------- Cache for Windows (x86-64) 2010.2.3 (Build 702) Tue Feb 15 2011 14:20:27 EST Cache for Windows (x86-64) 2012.1.1 (Build 602) Wed Mar 7 2012 22:36:34 EST ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 15:56 |
|
[Excel][UserForm] Как программно обойти только нужные элементы?
|
|||
---|---|---|---|
#18+
krvsa, Нужные элементы - .Tabstop = True, ненужные, соответственно .Tabstop = False ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 16:52 |
|
[Excel][UserForm] Как программно обойти только нужные элементы?
|
|||
---|---|---|---|
#18+
Может быть это поможет? Как быстро заполнить/очистить элементы на форме(TextBox-ы, ComboBox-ы) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 17:27 |
|
[Excel][UserForm] Как программно обойти только нужные элементы?
|
|||
---|---|---|---|
#18+
krvsaМожет TabIndex как-то в этом поможет?имхо не стоит делать именно так. А что связывает таблицу и контролы? допустим имена столбцов и имена контролов? И что такое таблица? БД, лист, массив...? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 19:23 |
|
[Excel][UserForm] Как программно обойти только нужные элементы?
|
|||
---|---|---|---|
#18+
Shocker.ProА что связывает таблицу и контролы? Пока только порядок их следования... Т.е. первый, второй и т.д. Как столбцы так и контролы... Значение i-того контрола нужно поместить, при добавлении строки, в i-тый столбец Shocker.Proдопустим имена столбцов и имена контролов? Пока такого нет... Shocker.ProИ что такое таблица? БД, лист, массив...? На листе нарисована шапка обычной таблички (некая выходная форма) и кнопка "Добавить строку". По нажатии на кнопку показывается форма с контролами (около 20шт.) они заполняются пользователем. Потом в форме давят кнопку "Записать". После этого добавляется очередная строка в ту табличку и нужно переписать значения контролов в соответствующие колонки... Вот интересуюсь как это сделать в некоем цикле? Макро подстановок (как в моём языка) у ВБА, я так понял, нет... Объект не вызывается по строковой переменной, как например в JS... Т.ч. прошу советов у матёрых ВБАшников, как такое оптимальнее сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 11:41 |
|
[Excel][UserForm] Как программно обойти только нужные элементы?
|
|||
---|---|---|---|
#18+
The_PristМожет быть это поможет? Как быстро заполнить/очистить элементы на форме(TextBox-ы, ComboBox-ы) Это уже хорошая наводка! А что влияет на порядок следования элементов в Код: vbnet 1.
? Потому как например в JS элементы будут неупорядочены в таком проходе Код: vbnet 1. 2. 3.
А мне нужно пройтись по ним в нужном мне порядке... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 11:45 |
|
[Excel][UserForm] Как программно обойти только нужные элементы?
|
|||
---|---|---|---|
#18+
Как вариант можно поиспользовать это Код: vbnet 1.
Это наверное меня устроит! Если конечно вы еще что-то более интересное не подсоветуете. Спасибо вам за помощь! Она для меня весьма кстати. P.S. Пока все не напились - с наступающим всех!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 11:49 |
|
[Excel][UserForm] Как программно обойти только нужные элементы?
|
|||
---|---|---|---|
#18+
krvsaТ.ч. прошу советов у матёрых ВБАшниковkrvsaПока только порядок их следования...Порядок их следования где? В коллекции Controls - это одно, по Tab - это другое. Так как и то и другое легко ломается при редактировании формы, ни то, ни другое я бы задействовать не стал. Самое оптимальное - иметь таблицу соответсвия. Например номера столбца и имени контрола. Как организовать эту таблицу - решать вам, через Array, через список констант, на листе и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 12:39 |
|
[Excel][UserForm] Как программно обойти только нужные элементы?
|
|||
---|---|---|---|
#18+
Shocker.ProПорядок их следования где? В коллекции Controls - это одно, по Tab - это другое. Как они располагаются в Controls я не в курсе... Могу повлиять только через Tab. Shocker.ProСамое оптимальное - иметь таблицу соответсвия. Например номера столбца и имени контрола. Как организовать эту таблицу - решать вам, через Array, через список констант, на листе и т.п. В итоге так и сделали... Создан массив стринговый, где i-тый элемент равен идентификатору контрола для i-того столбца. Т.ч. я думаю проблема решена. Всем еще раз спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 14:59 |
|
[Excel][UserForm] Как программно обойти только нужные элементы?
|
|||
---|---|---|---|
#18+
krvsa, контролы перебираются в цикле в том порядке, в котором были созданы на форме. А решение Вам самое верное посоветовал Shocker.Pro, которым Вы и воспользовались. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 13:02 |
|
|
start [/forum/moderation_log.php?user_name=Troymass]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 400ms |
total: | 547ms |
0 / 0 |