Каким образом можно узнать о существовании объекта на форме
необходимо программным способом узнать о существовании объекта на Форме
n=0
name = "TextBox_"
While Not (Me.Controls(name & CInt(n)) Is Nothing)
msgbox "форма с номером" & CStr(n) & " существует"
n=n+1
Wend
Данный способ не работает. Допустим есть 5 текст боксов, с 0...4, при n=5 выдает ошибку. Существует ли другой способ. Я знаю, что можно перебрать все объекты на форме, однако для моей задачи это не подходит, необходимо узнать, только имея имя объекта.
Ответы (1 шт):
Автор решения: Алексей Р
→ Ссылка
Обратитесь к нужному контролу и обработайте ошибку
Sub test1()
For Each ContolName In Array("TextBox1", "TextBox2", "TextBox3", "TextBox4", "TextBox5")
On Error Resume Next
Set tb = UserForm1.Controls(ContolName)
If Err.Number = 0 Then
Debug.Print "Элемент " & ContolName & " есть на форме"
Else
Debug.Print "Элемента " & ContolName & " нет на форме"
End If
On Error GoTo 0
Next
End Sub
Элемент TextBox1 есть на форме
Элемент TextBox2 есть на форме
Элемент TextBox3 есть на форме
Элемента TextBox4 нет на форме
Элемента TextBox5 нет на форме