我有一个带有基本组合框和命令按钮的用户表单。当用户点击命令按钮时,我希望用户窗体关闭,并将组合框的值保存在一个变量中,该变量可以由“ThisWorkbook”中包含的子例程访问。
在用户窗体代码中:
Public employee_position As String
Public Sub CommandButton1_Click()
employee_position = Me.ComboBox1.Value
Unload Me
End Sub
在“ThisWorkbook”代码中
Private Sub GetUserFormValue()
Call Userform_Initialize
EmployeePosition.Show
MsgBox employee_position
End Sub
当“GetUserFormValue()”运行时,用户窗体出现,您可以在组合框中选择一个值并按命令按钮,但是当MsgBox出现时,它显示“”(无)
我在这里做错了什么?
最佳答案
当您Unload Me
时,我认为您会丢失与该模块关联的所有信息(包括全局变量)。但如果您使用 Me.Hide 而不是 Me.Unload,那么您可以在例程返回后访问表单的值。所以试试这个:
-- 用户表单代码包括:
Public Sub CommandButton1_Click()
Me.Hide
End Sub
--主要模块包括:
Private Sub GetUserFormValue()
Call Userform_Initialize
EmployeePosition.Show
MsgBox EmployeePosition.ComboBox1.Value
Unload EmployeePosition
End Sub
我认为这应该有效。
关于vba - Excel VBA - 将用户窗体组合框的值分配给全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14530146/