Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Определить, чем именно является данный конкретный Controls - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Определить, чем именно является данный конкретный Controls (Макросы/Sub)
Определить, чем именно является данный конкретный Controls
StoTisteg Дата: Воскресенье, 14.02.2016, 15:43 | Сообщение № 1
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
У меня есть форма. И в ней есть 100500 Controls. Некоторые из них — TextBox, некоторые ComboBox. Перед открытием формы мне нужно заблокировать (.Enabled=False) TextBox'ы, оставив "свободными" ComboBox'ы. Я это делаю в цикле по именам:
[vba]
Код

With frm_MyUserForm
    For i=0 To .Controls.Count 'Да, я знаю про For Each, но не люблю его
        If Left(.Controls(i).Name, 3) = "txt" Then .Controls(i).Enabled = False
    Next i
End With
[/vba]
Оно, конечно, работает, но что-то мне подсказывает, что я чешу правое ухо левой пяткой. Нет ли иного способа определить, чем является .Controls(i)?


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеУ меня есть форма. И в ней есть 100500 Controls. Некоторые из них — TextBox, некоторые ComboBox. Перед открытием формы мне нужно заблокировать (.Enabled=False) TextBox'ы, оставив "свободными" ComboBox'ы. Я это делаю в цикле по именам:
[vba]
Код

With frm_MyUserForm
    For i=0 To .Controls.Count 'Да, я знаю про For Each, но не люблю его
        If Left(.Controls(i).Name, 3) = "txt" Then .Controls(i).Enabled = False
    Next i
End With
[/vba]
Оно, конечно, работает, но что-то мне подсказывает, что я чешу правое ухо левой пяткой. Нет ли иного способа определить, чем является .Controls(i)?

Автор - StoTisteg
Дата добавления - 14.02.2016 в 15:43
RAN Дата: Воскресенье, 14.02.2016, 15:49 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Изучайте ХИТРОСТИ


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеИзучайте ХИТРОСТИ

Автор - RAN
Дата добавления - 14.02.2016 в 15:49
krosav4ig Дата: Воскресенье, 14.02.2016, 15:52 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
If TypeOf .Controls(i) Is MSForms.TextBox then Then .Controls(i).Enabled = False
[/vba]
не успел :(


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Воскресенье, 14.02.2016, 15:53
 
Ответить
Сообщение[vba]
Код
If TypeOf .Controls(i) Is MSForms.TextBox then Then .Controls(i).Enabled = False
[/vba]
не успел :(

Автор - krosav4ig
Дата добавления - 14.02.2016 в 15:52
Udik Дата: Воскресенье, 14.02.2016, 15:53 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Или родную экселевскую справку хоть одним глазком :)
[vba]
Код

Sub ControlProcessor(MyControl As Control)
    If TypeOf MyControl Is CommandButton Then
        Debug.Print "You passed in a " & TypeName(MyControl)
    ElseIf TypeOf MyControl Is CheckBox Then
        Debug.Print "You passed in a " & TypeName(MyControl)
    ElseIf TypeOf MyControl Is TextBox Then
        Debug.Print "You passed in a " & TypeName(MyControl)
    End If
End Sub

[/vba]
последний ElseIf


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеИли родную экселевскую справку хоть одним глазком :)
[vba]
Код

Sub ControlProcessor(MyControl As Control)
    If TypeOf MyControl Is CommandButton Then
        Debug.Print "You passed in a " & TypeName(MyControl)
    ElseIf TypeOf MyControl Is CheckBox Then
        Debug.Print "You passed in a " & TypeName(MyControl)
    ElseIf TypeOf MyControl Is TextBox Then
        Debug.Print "You passed in a " & TypeName(MyControl)
    End If
End Sub

[/vba]
последний ElseIf

Автор - Udik
Дата добавления - 14.02.2016 в 15:53
StoTisteg Дата: Воскресенье, 14.02.2016, 15:57 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Родная справка "хороша", как Ответчик им. тов. Шекли — чтобы задать ей правильный вопрос, нужно знать ответ :)


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеРодная справка "хороша", как Ответчик им. тов. Шекли — чтобы задать ей правильный вопрос, нужно знать ответ :)

Автор - StoTisteg
Дата добавления - 14.02.2016 в 15:57
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Определить, чем именно является данный конкретный Controls (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!