Страницы: 1
RSS
установка listindex для всех combobox на форме разом
 
Добрый вечер!  
Подскажите, пожалуйста, как можно одним циклом перебрать все элементы на форме и всем combobox поставить ListIndex=0?  
Так:  
Dim ctl As MSForms.Control  
For Each ctl In Me.Controls  
If TypeOf ctl Is MSForms.ComboBox Then ctl.ListIndex = 0  
Next ctl  
 
..не получается - выскакивает ошибка про invalid property value
 
Всё работает.
 
Может, определить переменную как  
 
Dim ctl As Object  
 
или просто как Variant  
 
Dim ctl  
 
Наверно, на форме есть контролы не из MSForms.
 
Я пробовал и Dim ctl As Control - работает.
 
А у меня вот такая ошибка выскакивает (см. вложение)  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
Нужно глянуть файл, но он, судя по всему, тоже большой... Можете сбросить мне на почту.
 
Если в каком-либо комбобоксе нет элементов, то попытка установить индекс на нулевой (самый верхний) элемент приведет к ошибке.  
Чтобы этого избежать, можно сначала проверять количество элементов:  
 
Private Sub UserForm_Activate()  
 Dim ctl As MSForms.Control  
 For Each ctl In Me.Controls  
   If TypeOf ctl Is MSForms.ComboBox Then  
     If ctl.ListCount > 0 Then ctl.ListIndex = 0  
   End If  
 Next  
End Sub
Страницы: 1
Читают тему
Наверх