Гы, так автор уже его сформулировал и получил)) все ответы есть в вопросе, который он задалСформулируешь вопрос, возможно сам же и получишь ответ.
проверить свойство index)как определить, входит ли активный контрол Me.ActiveControl в массив контролов
ну тут я даже не знаю что добавить, ответ сформулирован исчерпывающекак обращаться к контролу в Me.Controls, зная его имя Me.ActiveControl.Name и индекс Me.ActiveControl.Index?
Space писал(а):как определить, входит ли активный контрол Me.ActiveControl в массив контролов и как обращаться к контролу в Me.Controls, зная его имя Me.ActiveControl.Name и индекс Me.ActiveControl.Index?
VB-constructor писал(а):ну тут я даже не знаю что добавить, ответ сформулирован исчерпывающе
MsgBox Me.Controls("Text1").Text
Dim s As Control
For Each s In Controls
If s.Name = "Text1" And s.Index = 1 Then
s.Text = "sss"
Exit For
End If
Next s
Amed писал(а): If s.Name = "Text1" And s.Index = 1 Then
хм, наверно ошибку ловить придется ((Обращение к Me.ActiveControl.Index при контроле, не входящем в массив, приводит к ошибке. Более правильного способа нет?
Если имя не уникальное (массив контролов):
Me.Controls("Command1", 0).Caption = 1
VB-constructor писал(а):Если имя не уникальное (массив контролов):
можно еще так, имхо легче
- Код: Выделить всё
Me.Controls("Command1", 0).Caption = 1
Dim ctl As Control
For Each ctl In Me.Controls
' Debug.Print TypeName(Me.Controls(ctl.Name))
If VBA.VarType(Me.Controls(ctl.Name)) = vbObject Then
Debug.Print ctl.Name & "(" & ctl.Index & ")"
Else
Debug.Print ctl.Name
End If
Next
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 38