Private Sub UserForm_1Initialize()
my_var=""
End Sub
Private Sub ok_button_Click()
if (...) then
my_var="A"
else
my_var="B"
me.hide
UserForm2.show
End Sub
Передача данных между формами VBA (Excel)
Ситуация примерно такая:
UserForm1 code
Код:
UserForm1 code
Код:
Private Sub UserForm2_Initialize()
msgbox(my_var)
End Sub
msgbox(my_var)
End Sub
В данном случае переменная оказывается пустой (не инициализирована)
Переменная в модуле формы 1 и переменная в модуле формы 2 - это две разные переменные, т.к. находятся они в разных модулях - область видимости этих переменных - один модуль, в данном случае - модуль формы..
Самый легкий способ передать переменную другой форме:
1. Создать во второй форме, допустим, TextBox1
2. Его свойству Visible дать значение False
3. По клику на кнопке вычислять значение переменной
4. Потом делать так:
Код:
Load frmUser2
frmUser2.TextBox1.Value = imya_peremennoy
frmUser2.Show
frmUser2.TextBox1.Value = imya_peremennoy
frmUser2.Show
5. А уже в процедуре инициализации формы 2:
Код:
imya_peremennoy = frmUser2.TextBox1.Value
После этого все будет работать!;)
Цитата:
Originally posted by lisus
Подскажите, плиз, как передать значение переменной из одной формы в другую.
Подскажите, плиз, как передать значение переменной из одной формы в другую.
Один из вариантов заключается в том, чтобы объявить переменную my_var как глобальную:
[COLOR=blue]Public my_var[/COLOR]
Сделать это надо в каком-либо стандартном модуле кода (то есть в том, который создаётся с помощью команды Module из меню Insert).
Спасибо.