Страницы: 1
RSS
Цикл For-Each-Next
 
Использую код для отключения TextBox'ов :  
   TextBox1.Enabled = False  
   TextBox2.Enabled = False  
   TextBox3.Enabled = False  
......  
 
Как можно сократить код чтобы отключить textbox'ы с 1 по 10 ?  
Думаю использовать чтото типа :  
 
For Each TextBox In Frame6  
       TextBox.Enabled = False  
   Next TextBox  
 
но расписать правильно не могу
 
уже ближе :  
 
Dim textbox As Object  
   For Each textbox In Me.Frame6.Controls  
       If TypeOf textbox Is textbox Then  
           textbox.Enabled = False  
       End If  
   Next textbox  
 
но не работает как нужно (
 
Private Sub Frame1_Click()  
Dim TBox As Object  
For Each TBox In Me.Frame1.Controls  
  TBox.Visible = False  
Next TBox  
End Sub
 
{quote}{login=VovaK}{date=08.10.2009 12:09}{thema=}{post}Private Sub Frame1_Click()  
Dim TBox As Object  
For Each TBox In Me.Frame1.Controls  
  TBox.Visible = False  
Next TBox  
End Sub{/post}{/quote}  
 
я так пробовал, но так скроет все объекты на фрэйме..  а мне нужно чтобы только текстбоксы,  
то есть нужно проверка typeof  , а через нее почемуто все открыто ..
 
Тогда проверяй имена. Имя - строковая переменная, если во всех именах есть TextBox, то    
 
If Instr(TBox.Name,"TextBox") <> 0 Then    
TextBox.Enabled = False  
End If
 

Загляните сюда: http://www.planetaexcel.ru/forum.php?thread_id=7456

 
Блин.. ерунда какаято    
 
Dim textbox As control  
For Each textbox In Me.Frame6.Controls  
If TypeOf textbox Is Combobox Then  
textbox.Enabled = False  
End If  
Next textbox  
 
на комбобоксы работает..  а на текстбоксы не хочет...  ниииииичего не понимаю.
 
{quote}{login=Kilrex}{date=08.10.2009 12:28}{thema=}{post}Блин.. ерунда какаято    
Dim textbox As control  
For Each textbox In Me.Frame6.Controls  
If TypeOf textbox Is Combobox Then  
textbox.Enabled = False  
End If  
Next textbox  
на комбобоксы работает..  а на текстбоксы не хочет...  ниииииичего не понимаю.{/post}{/quote}  
Так у Вас в коде и Комбо И ТекстБоксы одновременно.
 
{quote}{login=Юрий М}{date=08.10.2009 12:25}{thema=}{post}

Загляните сюда: http://www.planetaexcel.ru/forum.php?thread_id=7456

{/post}{/quote}  
 
изменил textbox - MSForms.textbox и заработало  ..    
 
всем спасибо ... но все равно не понимаю почему с combobox работало...
 
{quote}{login=Kilrex}{date=08.10.2009 12:31}{thema=Re: }{post}{quote}  
изменил textbox - MSForms.textbox и заработало  ..    
 
всем спасибо ... но все равно не понимаю почему с combobox работало...{/post}{/quote}  
 
Потому что строкой Dim textbox As control  
Вы переопределили встроенный в VBA тип textbox  
 
Если бы Вы вместо textbox использовали любое другое имя переменной, всё бы работало.  
 
Для примера можете попробовать так:  
 
Dim textbox2 As Object  
For Each textbox2 In Me.Frame6.Controls  
If TypeOf textbox2 Is textbox Then  
textbox2.Enabled = False  
End If  
Next textbox2
 
Опять с этими тегами запутался :)  
Повтор предыдущего поста:  
 
{quote}{login=Kilrex}{date=08.10.2009 12:31}{thema=Re: }{post}  
изменил textbox - MSForms.textbox и заработало  ..    
 
всем спасибо ... но все равно не понимаю почему с combobox работало...{/post}{/quote}  
 
Потому что строкой Dim textbox As control  
Вы переопределили встроенный в VBA тип textbox  
 
Если бы Вы вместо textbox использовали любое другое имя переменной, всё бы работало.  
 
Для примера можете попробовать так:  
 
Dim textbox2 As Object  
For Each textbox2 In Me.Frame6.Controls  
If TypeOf textbox2 Is textbox Then  
textbox2.Enabled = False  
End If  
Next textbox2
Страницы: 1
Читают тему
Наверх