Excel 2013
Я прочитал несколько вопросов, которые задают этот же вопрос, и ни один из этих ответов, похоже, не работает для меня.
У меня есть пользовательская форма, в которой для выбора количества переменных (1, 2 или 3), которые будут использоваться позже в модуле, используется комбобокс. Затем кнопка ОК.
Я попытался объявить глобальную переменную и сделать ее общедоступной в первой строке модуля, и, кажется, она работает, когда вы вручную нажимаете на макрос, но когда я пытаюсь использовать его как пользователя, он сбрасывает переменную для по какой причине?
Module1
Public variable As Integer
Private Sub Button1_Click()
UserForm1.Show
End Sub
Я предполагаю, что Button1_Click () не имеет ничего общего, но хотел показать это и подтвердить, что это не является частью проблемы
UserForm1
Private Sub UserForm_Activate()
ComboBox1.AddItem 1
ComboBox1.AddItem 2
ComboBox1.AddItem 3
End Sub
пользователь выбирает 1 2 или 3
Userform1 все еще
Private Sub OK_Click()
If ComboBox1.ListIndex = -1 Then
MsgBox "Select a number"
Else
variable = Me.ComboBox1.Value
Range("D1").Value = variable'testing
Unload Me
End If
Range("D2").Value = variable 'testing after "Unload Me"???
End Sub
'Module1 снова
Sub Macro2()
Range("D3").Select
ActiveCell.FormulaR1C1 = variable
End Sub
Когда я F8 через UserForm_Activate () -> OK_Click () -> Macro2 (), он запоминает мою переменную и помещает ее в ячейку D3.
Если я просто нажимаю кнопки, как пользователь, а затем вручную запускаю Macro2 (), он думает, что моя переменная равна 0 (не опция), и я получаю 0 в ячейке D3, а не переменную, выбранную пользователем .
Спасибо за вашу помощь!