powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / обход элементов ComboBox в цикле
16 сообщений из 16, страница 1 из 1
обход элементов ComboBox в цикле
    #38046888
Sebrikmsp12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мир всем местным!

Как мне в Excel организовать обход элементов ComboBox в цикле ?

Dim i as integer
for i=1 to 3
ComboBox+CStr(i).additem "ОДИН"
ComboBox+CStr(i).additem "ДВА"
ComboBox+CStr(i).additem "ТРИ"
next i

Это же не верно? как быть? Помогите!
...
Рейтинг: 0 / 0
обход элементов ComboBox в цикле
    #38047008
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
me.controls("ComboBox"+CStr(i)).AddItem
...
Рейтинг: 0 / 0
обход элементов ComboBox в цикле
    #38047243
Sebrikmsp12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

что такое "me."?
...
Рейтинг: 0 / 0
обход элементов ComboBox в цикле
    #38047258
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ссылка на текущую форму, если код находится в форме и комбобоксы находятся на форме (что, в общем-то не описано в изначальном сообщении). Можно заменить Me на ссылку на форму (если код находится не в форме).
...
Рейтинг: 0 / 0
обход элементов ComboBox в цикле
    #38047273
Sebrikmsp12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Все дело происходит в Excel и все комбобоксы расположены прям на листе Excel. Причем здесь форма?
...
Рейтинг: 0 / 0
обход элементов ComboBox в цикле
    #38047294
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ЭТО надо было написать в первом посте, нам-то откуда знать, где комбобоксы находятся.
...
Рейтинг: 0 / 0
обход элементов ComboBox в цикле
    #38047309
Sebrikmsp12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

ну сорри, если не правильно сформулировал мысль. Но написав авторКак мне в Excel организовать обход элементов ComboBox в цикле ? я подразумевал, что речь идет про Excel и что cbox'ы расположены там же.

И все же. Как должно быть? Это существенно меняет дело, если нету форм?
спасибо
...
Рейтинг: 0 / 0
обход элементов ComboBox в цикле
    #38047470
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В экселе тоже есть формы и чаще вопросы задают про них.
Существенно. К объектам на листе по-другому обращаются, чем на формах, я не помню как. На форуме есть примеры, но надо искать, вечером будет время - поищу... или кто-то другой подскажет.
...
Рейтинг: 0 / 0
обход элементов ComboBox в цикле
    #38047622
портер2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sebrikmsp12Shocker.Pro,

ну сорри, если не правильно сформулировал мысль. Но написав авторКак мне в Excel организовать обход элементов ComboBox в цикле ? я подразумевал, что речь идет про Excel и что cbox'ы расположены там же.

И все же. Как должно быть? Это существенно меняет дело, если нету форм?
спасибо
Нужно иметь в виду, что на листе экселя может быть 2 варианта комбобокса. АктивИксный и формный.
Озадачился твоим вопросом, для активиксного можно так
1.
Код: vbnet
1.
2.
ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
        DisplayAsIcon:=False, Left:=49.5, Top:=217.5, Width:=72, Height:=18). _


2.
Код: vbnet
1.
2.
3.
For Each obj In ActiveSheet.OLEObjects
MsgBox obj.Name
Next obj


Для формного как-то иначе, наверна.
Воспользуйся макрорекордером.
...
Рейтинг: 0 / 0
обход элементов ComboBox в цикле
    #38047632
портер2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЗЫ Я это все делал на домашнем эксель-2010 - на других версиях может другая объектная модель. Но, скорее всего, макрорекордер должен помочь.
...
Рейтинг: 0 / 0
обход элементов ComboBox в цикле
    #38047789
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Комбобоксы листа находятся в коллекции Shapes емнип
...
Рейтинг: 0 / 0
обход элементов ComboBox в цикле
    #38048141
Sebrikmsp12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
портер2Sebrikmsp12Shocker.Pro,

ну сорри, если не правильно сформулировал мысль. Но написав пропущено...
я подразумевал, что речь идет про Excel и что cbox'ы расположены там же.

И все же. Как должно быть? Это существенно меняет дело, если нету форм?
спасибо
Нужно иметь в виду, что на листе экселя может быть 2 варианта комбобокса. АктивИксный и формный.
Озадачился твоим вопросом, для активиксного можно так
1.
Код: vbnet
1.
2.
ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
        DisplayAsIcon:=False, Left:=49.5, Top:=217.5, Width:=72, Height:=18). _


2.
Код: vbnet
1.
2.
3.
For Each obj In ActiveSheet.OLEObjects
MsgBox obj.Name
Next obj


Для формного как-то иначе, наверна.
Воспользуйся макрорекордером.

Да, да. Спасибо! Как-то так работает :)
В Ексель 2010 действительно два вида комбобокса, те, о которых ты написал. А вот в 2003 только один, по-моему, который активХ.

В любом случае еще раз спасибо!
...
Рейтинг: 0 / 0
обход элементов ComboBox в цикле
    #38048197
Sebrikmsp12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
теперь трабл в том, как добавить к каждому комбобокс запись?

т.е:

For Each obj In ActiveSheet.OLEObjects
obj.AddItem "запись"
Next obj

Как именно сделать AddItem ?
...
Рейтинг: 0 / 0
обход элементов ComboBox в цикле
    #38048307
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так и делать. Только проверять имя объекта, мало что там еще окажется на листе из ОЛЕ-объектов.
...
Рейтинг: 0 / 0
обход элементов ComboBox в цикле
    #38048378
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim obj As OLEObject
For Each obj In ActiveSheet.OLEObjects
    'If obj.progID = "Forms.ComboBox.1" Then 'или так
        If TypeOf obj.Object Is ComboBox Then
            obj.Object.AddItem "Îäèí"
            obj.Object.AddItem "Äâà"
        End If
    'End If
Next
...
Рейтинг: 0 / 0
обход элементов ComboBox в цикле
    #38048762
Sebrikmsp12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, ребят! Подсобили! :)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / обход элементов ComboBox в цикле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]