用户表单问题中的全局变量

时间:2019-05-02 16:04:58

标签: excel vba global-variables userform

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

当我通过UserForm_Activate()-> OK_Click()-> Macro2()F8时,它会记住我的变量并将其放在单元格D3中。

如果我只是按用户的方式单击按钮,然后手动启动Macro2(),它将认为我的变量为0(不是选项),并且在单元格D3中得到0,而不是用户选择的变量

感谢您的帮助!

0 个答案:

没有答案