У меня есть пользовательская форма с тремя концептуальными группами текстовых полей.Я пытаюсь создать коллекцию для каждой группы, а затем, когда пользователь нажимает кнопку, чтобы вызвать подпрограмму / функцию, связанную с одной из этих групп, я хочу иметь возможность вызывать функцию, которая перебирает коллекцию связанных текстовых полей.с этой группой и проверьте, не являются ли они пустыми, содержат недопустимые символы и т. д.
Я сделал следующие объявления на уровне модуля.
Dim typSectFields, laneFields, matFields As Collection
Затем, когда пользовательская форма инициализирует I,добавить текстовые поля в коллекции:
Set typSectFields = New Collection
With frmAddTypSect
typSectFields.Add txtTypSectName
typSectFields.Add txtStartSta
typSectFields.Add txtEndSta
End With
И затем, когда пользователь нажимает кнопку, которая использует входные данные из коллекции "typSectFields":
Dim tb As Control, res As VbMsgBoxResult
For Each tb In typSectFields
If tb.Text = vbNullString And t.Tag <> vbNullString Then
res = MsgBox("You've not completed the " + tb.Tag + " field. Would you like to complete it now?", vbYesNo + vbQuestion)
If res = vbYes Then Exit Sub
End If
Next
Я получаю "Объект"Обязательная "ошибка, когда выполнение попадает в цикл For.
VBE показывает, что tb = nothing и typSectFields = Empty.
Что я делаю не так?