Добрый день. У меня имеются 30 полей со списком Combobox1, Combobox2......Combobox30 Мне необходимо присвоить значение Combobox1.text="-----" и так для всех кнопок на листе. Я могу сделать это для каждой в отдельности в макросе:
[vba]
Код
sub Макрос1() Combobox1.text="-----" Combobox2.text="-----" . . . Combobox30.text="-----" end sub
[/vba]
Помогите пожалуйста это сделать в како-нибудь цикле, лучше for next, который перебирал бы все эти Combobox [moder]Вы мое терпение испытываете, да? Зачем Вы еще одну тему создали? п. 5f Правил форума. А с названием теперь все хорошо. И ветка форума правильно выбрана. Осталось еще разобраться с обрамлением кода макроса спецтегами http://www.excelworld.ru/forum/5-2708-1 и приложением файла. А ту тему я закрываю.
Добрый день. У меня имеются 30 полей со списком Combobox1, Combobox2......Combobox30 Мне необходимо присвоить значение Combobox1.text="-----" и так для всех кнопок на листе. Я могу сделать это для каждой в отдельности в макросе:
[vba]
Код
sub Макрос1() Combobox1.text="-----" Combobox2.text="-----" . . . Combobox30.text="-----" end sub
[/vba]
Помогите пожалуйста это сделать в како-нибудь цикле, лучше for next, который перебирал бы все эти Combobox [moder]Вы мое терпение испытываете, да? Зачем Вы еще одну тему создали? п. 5f Правил форума. А с названием теперь все хорошо. И ветка форума правильно выбрана. Осталось еще разобраться с обрамлением кода макроса спецтегами http://www.excelworld.ru/forum/5-2708-1 и приложением файла. А ту тему я закрываю.Alexander_Galizin
Сообщение отредактировал _Boroda_ - Четверг, 10.09.2015, 13:14
Alexander_Galizin, Вы замечание модератора исправлять собираетесь? Код написан, но правила нарушать нельзя Udik, автор темы так и не исправил 1-е сообщение. ... ЗЫ если их будет неизвестное количество?
Alexander_Galizin, Вы замечание модератора исправлять собираетесь? Код написан, но правила нарушать нельзя Udik, автор темы так и не исправил 1-е сообщение. ... ЗЫ если их будет неизвестное количество?SLAVICK
Sub TEST() Dim s As Shape, c As ComboBox, sh As Worksheet, i& Set sh = ActiveSheet i = 2 For Each s In sh.Shapes On Error GoTo next_ If Not s.Name Like "ComboBox*" Then GoTo next_ Set c = s.DrawingObject.Object i = i + 1: Cells(i, 10) = c.Name: c.Text = Cells(i, 11) next_: Next End Sub
[/vba] 2-й вариант почти как у Udik : [vba]
Код
Sub TEST_2() Dim s As OLEObject, sh As Worksheet, i& Set sh = ActiveSheet i = 2 For Each s In sh.OLEObjects i = i + 1: Cells(i, 13) = s.Name: s.Object.Text = Cells(i, 14) Next End Sub
[/vba] PS Исправил сообщение
Ну тогда вот : 1-й вариант через Shapes: [vba]
Код
Sub TEST() Dim s As Shape, c As ComboBox, sh As Worksheet, i& Set sh = ActiveSheet i = 2 For Each s In sh.Shapes On Error GoTo next_ If Not s.Name Like "ComboBox*" Then GoTo next_ Set c = s.DrawingObject.Object i = i + 1: Cells(i, 10) = c.Name: c.Text = Cells(i, 11) next_: Next End Sub
[/vba] 2-й вариант почти как у Udik : [vba]
Код
Sub TEST_2() Dim s As OLEObject, sh As Worksheet, i& Set sh = ActiveSheet i = 2 For Each s In sh.OLEObjects i = i + 1: Cells(i, 13) = s.Name: s.Object.Text = Cells(i, 14) Next End Sub