Мне нужно определить глобальную переменную x и присвоить значение x в соответствии с выбором пользователя, а затем записать одно и то же значение в две ячейки N2 и J2. N2 происходит внутри пользовательской формы, а J2 - вне пользовательской формы. Сначала я хочу, чтобы у пользователя было всплывающее окно для выбора значения 0,01 или 0,05. Поэтому я использовал userform для этого. Но вместо непосредственного запуска этой пользовательской формы я хотел вызвать пользовательскую форму в модуле vba с именем macro2 (), см. Ниже. В macro2 () я сначала вызываю пользовательскую форму «user1», всплывающее окно покажет пользователю возможность выбрать 0,01 или 0,05. Если мы выберем 0.01, то глобальная переменная "x" будет иметь значение 0.01. Тогда, когда мы запишем переменную x в ячейку N2, N2 будет иметь значение 0,01 (это хорошо). Но после того, как пользовательская форма выйдет и продолжит оставшуюся часть macro2 (), ячейка J2 будет 0 вместо 0,01, хотя x должен иметь значение 0,01.
Это довольно интересно, потому что во второй раз, когда мы выбираем 0,05, N2 будет иметь значение 0,05, но J2 будет нести старое значение х 0,01. Может ли кто-нибудь помочь мне с этим? По сути, мне нужно, чтобы и N2, и J2 имели одно и то же значение x, чтобы я мог вызвать x в более позднем коде для многих других вещей. Спасибо!
Мой код модуля / макроса выглядит следующим образом:
Global x As Double
Sub Macro2()
Dim frm As user1
user1.Show vbModeless
Range("J2").Select
ActiveCell.FormulaR1C1 = x
End Sub
Код пользовательской формы "user1":
Private Sub OptionButton1_Click()
Range("N2").Select
x = 0.01
ActiveCell.FormulaR1C1 = x
Me.Hide
End Sub
Private Sub OptionButton2_Click()
Range("N2").Select
x = 0.05
ActiveCell.FormulaR1C1 = x
Me.Hide
End Sub
Private Sub UserForm_Click()
ActiveCell.FormulaR1C1 = x
End Sub