首页 > 解决方案 > 来自用户表单问题的全局变量

问题描述

Excel 2013 我已经阅读了几个提出同样问题的问题,但这些答案似乎都不适合我。

我有一个用户表单,其中一个组合框用于选择稍后在模块中使用的变量数(1、2 或 3)。然后是确定按钮。

我已经尝试声明一个全局变量并在模块的第一行将其公开,当手动单击宏时它似乎可以工作,但是当我尝试以用户身份使用它时,它会以何种原因删除该变量?

模块1

Public variable As Integer

Private Sub Button1_Click()
    UserForm1.Show
End Sub 

我认为 Button1_Click() 与任何事情无关,但想展示它并确认它不是问题的一部分

用户表单1

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

'再次模块1

Sub Macro2()
    Range("D3").Select
    ActiveCell.FormulaR1C1 = variable
End Sub

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

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

谢谢你的帮助!

标签: excelvbaglobal-variablesuserform

解决方案


推荐阅读