Спростить правильно код
anger47
Дата: Пятница, 26.09.2014, 18:45 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 192
Репутация:
6
±
Замечаний:
0% ±
Здравствуйте, форумчане! Помогите правильно сократить код VBA: [vba]Код
Private Sub CheckBox1_Click() If CheckBox1 = True Then TextBox1.Locked = False TextBox1 = "1" TextBox1.Enabled = True TextBox1.BackColor = &H80000005 TextBox2.Locked = False TextBox2.Enabled = True TextBox2.BackColor = &H80000005 TextBox3.Locked = False TextBox3.Enabled = True TextBox3.BackColor = &H80000005 ComboBox1.Locked = False ComboBox1.Enabled = True ComboBox1.BackColor = &H80000005 ComboBox2.Locked = False ComboBox2.Enabled = True ComboBox2.BackColor = &H80000005 ComboBox3.Locked = False ComboBox3.Enabled = True ComboBox3.BackColor = &H80000005 Else TextBox1 = "" TextBox1.Locked = True TextBox1.Enabled = False TextBox1.BackColor = &H80000004 TextBox2.Locked = True TextBox2.Enabled = False TextBox2.BackColor = &H80000004 TextBox3.Locked = True TextBox3.Enabled = False TextBox3.BackColor = &H80000004 ComboBox1.Locked = True ComboBox1.Enabled = False ComboBox1.BackColor = &H80000004 ComboBox2.Locked = True ComboBox2.Enabled = False ComboBox2.BackColor = &H80000004 ComboBox3.Locked = True ComboBox3.Enabled = False ComboBox3.BackColor = &H80000004 End If End Sub
[/vba] Подобных TextBox_ов и ComboBox_ов около 50-ти штук.
Здравствуйте, форумчане! Помогите правильно сократить код VBA: [vba]Код
Private Sub CheckBox1_Click() If CheckBox1 = True Then TextBox1.Locked = False TextBox1 = "1" TextBox1.Enabled = True TextBox1.BackColor = &H80000005 TextBox2.Locked = False TextBox2.Enabled = True TextBox2.BackColor = &H80000005 TextBox3.Locked = False TextBox3.Enabled = True TextBox3.BackColor = &H80000005 ComboBox1.Locked = False ComboBox1.Enabled = True ComboBox1.BackColor = &H80000005 ComboBox2.Locked = False ComboBox2.Enabled = True ComboBox2.BackColor = &H80000005 ComboBox3.Locked = False ComboBox3.Enabled = True ComboBox3.BackColor = &H80000005 Else TextBox1 = "" TextBox1.Locked = True TextBox1.Enabled = False TextBox1.BackColor = &H80000004 TextBox2.Locked = True TextBox2.Enabled = False TextBox2.BackColor = &H80000004 TextBox3.Locked = True TextBox3.Enabled = False TextBox3.BackColor = &H80000004 ComboBox1.Locked = True ComboBox1.Enabled = False ComboBox1.BackColor = &H80000004 ComboBox2.Locked = True ComboBox2.Enabled = False ComboBox2.BackColor = &H80000004 ComboBox3.Locked = True ComboBox3.Enabled = False ComboBox3.BackColor = &H80000004 End If End Sub
[/vba] Подобных TextBox_ов и ComboBox_ов около 50-ти штук. anger47
Сообщение отредактировал anger47 - Пятница, 26.09.2014, 18:46
Ответить
Сообщение Здравствуйте, форумчане! Помогите правильно сократить код VBA: [vba]Код
Private Sub CheckBox1_Click() If CheckBox1 = True Then TextBox1.Locked = False TextBox1 = "1" TextBox1.Enabled = True TextBox1.BackColor = &H80000005 TextBox2.Locked = False TextBox2.Enabled = True TextBox2.BackColor = &H80000005 TextBox3.Locked = False TextBox3.Enabled = True TextBox3.BackColor = &H80000005 ComboBox1.Locked = False ComboBox1.Enabled = True ComboBox1.BackColor = &H80000005 ComboBox2.Locked = False ComboBox2.Enabled = True ComboBox2.BackColor = &H80000005 ComboBox3.Locked = False ComboBox3.Enabled = True ComboBox3.BackColor = &H80000005 Else TextBox1 = "" TextBox1.Locked = True TextBox1.Enabled = False TextBox1.BackColor = &H80000004 TextBox2.Locked = True TextBox2.Enabled = False TextBox2.BackColor = &H80000004 TextBox3.Locked = True TextBox3.Enabled = False TextBox3.BackColor = &H80000004 ComboBox1.Locked = True ComboBox1.Enabled = False ComboBox1.BackColor = &H80000004 ComboBox2.Locked = True ComboBox2.Enabled = False ComboBox2.BackColor = &H80000004 ComboBox3.Locked = True ComboBox3.Enabled = False ComboBox3.BackColor = &H80000004 End If End Sub
[/vba] Подобных TextBox_ов и ComboBox_ов около 50-ти штук. Автор - anger47 Дата добавления - 26.09.2014 в 18:45
The_Prist
Дата: Пятница, 26.09.2014, 18:49 |
Сообщение № 2
Группа: Друзья
Ранг: Участник
Сообщений: 85
Репутация:
22
±
Замечаний:
0% ±
2010
Errare humanum est, stultum est in errore perseverare
Ответить
anger47
Дата: Суббота, 27.09.2014, 00:06 |
Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 192
Репутация:
6
±
Замечаний:
0% ±
я накатал вот так) [vba]Код
Dim i As Integer For i = 2 To 3 Step 1 Me.Controls("TextBox" & i).Value = i Next i
[/vba] тут получаеться, что в текст боксах пишет числа "2" или "3" но ка бы не то. мне надо, что при нажатии на ЧекБокс изменялись Свойста TextBox_ов и ComboBox_ов. Если CheckBox "да", то Свойстово [vba]Код
Locked = True и Enabled = False
[/vba], когда не активирован, то обратно [vba]Код
Locked = False и Enabled = True
[/vba]
я накатал вот так) [vba]Код
Dim i As Integer For i = 2 To 3 Step 1 Me.Controls("TextBox" & i).Value = i Next i
[/vba] тут получаеться, что в текст боксах пишет числа "2" или "3" но ка бы не то. мне надо, что при нажатии на ЧекБокс изменялись Свойста TextBox_ов и ComboBox_ов. Если CheckBox "да", то Свойстово [vba]Код
Locked = True и Enabled = False
[/vba], когда не активирован, то обратно [vba]Код
Locked = False и Enabled = True
[/vba] anger47
Сообщение отредактировал anger47 - Суббота, 27.09.2014, 00:09
Ответить
Сообщение я накатал вот так) [vba]Код
Dim i As Integer For i = 2 To 3 Step 1 Me.Controls("TextBox" & i).Value = i Next i
[/vba] тут получаеться, что в текст боксах пишет числа "2" или "3" но ка бы не то. мне надо, что при нажатии на ЧекБокс изменялись Свойста TextBox_ов и ComboBox_ов. Если CheckBox "да", то Свойстово [vba]Код
Locked = True и Enabled = False
[/vba], когда не активирован, то обратно [vba]Код
Locked = False и Enabled = True
[/vba] Автор - anger47 Дата добавления - 27.09.2014 в 00:06
wild_pig
Дата: Суббота, 27.09.2014, 00:49 |
Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 516
Репутация:
97
±
Замечаний:
0% ±
2003, 2013
Вместо .Value пишите свои .Locked и .Enabled
Вместо .Value пишите свои .Locked и .Enabled wild_pig
Ответить
Сообщение Вместо .Value пишите свои .Locked и .Enabled Автор - wild_pig Дата добавления - 27.09.2014 в 00:49
AndreTM
Дата: Суббота, 27.09.2014, 06:27 |
Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
500
±
Замечаний:
0% ±
2003 & 2010
А вы понимаете, что ваш код (из четырех строк) аналогичен всего двум строчкам: [vba]Код
TextBox2.Value = 2 TextBox3.Value = 3
[/vba]что же вы тогда такое написали? Можно как-то так, как в примере (Form1), но всё равно, логика переключений немного хромает... И я бы посоветовал для "объединения" контролов с однотипными свойствами, которыми нужно управлять, воспользоваться каким-либо методом. В примере (Form2) это сделано с помощью фрейма; можно использовать имена контролов "по шаблону", или свойство "Tag", или ещё чего...
А вы понимаете, что ваш код (из четырех строк) аналогичен всего двум строчкам: [vba]Код
TextBox2.Value = 2 TextBox3.Value = 3
[/vba]что же вы тогда такое написали? Можно как-то так, как в примере (Form1), но всё равно, логика переключений немного хромает... И я бы посоветовал для "объединения" контролов с однотипными свойствами, которыми нужно управлять, воспользоваться каким-либо методом. В примере (Form2) это сделано с помощью фрейма; можно использовать имена контролов "по шаблону", или свойство "Tag", или ещё чего... AndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Ответить
Сообщение А вы понимаете, что ваш код (из четырех строк) аналогичен всего двум строчкам: [vba]Код
TextBox2.Value = 2 TextBox3.Value = 3
[/vba]что же вы тогда такое написали? Можно как-то так, как в примере (Form1), но всё равно, логика переключений немного хромает... И я бы посоветовал для "объединения" контролов с однотипными свойствами, которыми нужно управлять, воспользоваться каким-либо методом. В примере (Form2) это сделано с помощью фрейма; можно использовать имена контролов "по шаблону", или свойство "Tag", или ещё чего... Автор - AndreTM Дата добавления - 27.09.2014 в 06:27
The_Prist
Дата: Суббота, 27.09.2014, 16:37 |
Сообщение № 6
Группа: Друзья
Ранг: Участник
Сообщений: 85
Репутация:
22
±
Замечаний:
0% ±
2010
Это называется скатал, а не накатал. Взяли и без вчитываний и раздумий содрали код с сайта. Вы хоть свойства для контролов вставляйте свои, а не те что для примера на сайте. Надо же понимать, что я когда статью писал должен был выбрать какое-то свойство для примера, а не все подряд туда закидывать. [vba]Код
Me.Controls("TextBox" & i).Enabled = True Me.Controls("TextBox" & i).BackColor = &H80000005
[/vba] Естественно, я привел не полный код - уверен, что хватит у Вас сил додумать как это завернуть в свой If ... Then ... Else
Это называется скатал, а не накатал. Взяли и без вчитываний и раздумий содрали код с сайта. Вы хоть свойства для контролов вставляйте свои, а не те что для примера на сайте. Надо же понимать, что я когда статью писал должен был выбрать какое-то свойство для примера, а не все подряд туда закидывать. [vba]Код
Me.Controls("TextBox" & i).Enabled = True Me.Controls("TextBox" & i).BackColor = &H80000005
[/vba] Естественно, я привел не полный код - уверен, что хватит у Вас сил додумать как это завернуть в свой If ... Then ... Else The_Prist
Errare humanum est, stultum est in errore perseverare
Ответить
Сообщение Это называется скатал, а не накатал. Взяли и без вчитываний и раздумий содрали код с сайта. Вы хоть свойства для контролов вставляйте свои, а не те что для примера на сайте. Надо же понимать, что я когда статью писал должен был выбрать какое-то свойство для примера, а не все подряд туда закидывать. [vba]Код
Me.Controls("TextBox" & i).Enabled = True Me.Controls("TextBox" & i).BackColor = &H80000005
[/vba] Естественно, я привел не полный код - уверен, что хватит у Вас сил додумать как это завернуть в свой If ... Then ... Else Автор - The_Prist Дата добавления - 27.09.2014 в 16:37