Глобальные переменные из проблем пользовательской формы - PullRequest
1 голос
/ 02 мая 2019

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, а не переменную, выбранную пользователем .

Спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...