У меня задача в открывшейся форме пройтись циклом (от 1 до n). И на каждой итерации (жмакая CommandButton1) с textbox находящегося в этой форме взять введенное значение. Чтобы получить соответствие (итерация 1 – значение А1, итерация 2 – значение А2 и т.д.)
Пробовал разные способы, вроде как DoEvents должен помочь, но что-то все не так, - цикл идет без остановки «пробегая» момент изменения textbox’а.
Свои потуги прилагаю:
Код
Option Explicit
Option Base 1
Dim globalFlag As Boolean
Private Sub UserForm_Initialize()
Label1.Caption = "enter the name of 1 group"
End Sub
Private Sub UserForm_Activate()
Dim a, i As Integer
a = UserForm1.ComboBox2.Value
ReDim NameGroup(a)
globalFlag = False
For i = 1 To a
Label1.Caption = "enter the name of " & i & " group"
NameGroup(i) = TextBox1.Value
DoEvents
' MsgBox ("name of " & i & " group saved"), vbInformation
If globalFlag = True Then globalFlag = False
Next i
End Sub
Private Sub CommandButton1_Click()
globalFlag = True
End Sub
написал: А пауза для чего? Что хотите делать во время этой паузы?
Мне с каждой итерации необходимо забрать значение с textbox'а.
Я хотел циклом (от 1 до n) создать соответствия номера итерации к значению введенному в textbox.
простым языком: я инициализирую UserForm с начальным содержанием Label - "введите значение 1", юзер в textbox вводит значение и нажимает кнопку сохранить. Значение сохраняется в массиве, а скрипт с циклом переходит к следующей итерации - textbox чищу, содержание Label меняется на "введите значение 2", юзер в textbox вводит следующее значение и нажимает кнопку сохранить... и т.д. до итерации n
В итоге я должен получить соответствия: итерация 1 – значение А1, итерация 2 – значение А2 и т.д.
а зачем там вообще цикл? если нужна реакция на нажатую CommandButton1? вот с этим и работайте. нужно понимать какой раз нажата кнопка, заведите глобальный счетчик, увеличивайте его в теле Private Sub CommandButton1_Click() .... End Sub там же выполните все необходимое и так, столько бы раз кнопку не нажал пользователь и без всяких циклов не нужно пытаться горбатого плотно прислонить к стене, ничего из этого не получится)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
написал: а зачем там вообще цикл? если нужна реакция на нажатую CommandButton1? вот с этим и работайте. нужно понимать какой раз нажата кнопка, заведите глобальный счетчик, увеличивайте его в теле Private Sub CommandButton1_Click() .... End Sub там же выполните все необходимое и так, столько бы раз кнопку не нажал пользователь и без всяких циклов не нужно пытаться горбатого плотно прислонить к стене, ничего из этого не получится)
В конечном счете так и сделал. Всем огромное спасибо кто отозвался!