【发布时间】:2015-03-01 12:10:33
【问题描述】:
首先,这是我关于堆栈溢出的第一篇文章,所以我希望我遵循正确的程序。我已经浏览了这个网站和其他网站上的几十篇文章,但我似乎无法为我的类似案例推断出解决方案。我也尝试过使用调试行,但我无法查明问题,可能是因为我是 VBA 新手。简单说一下,希望对你有所帮助:
Sheet1 上的一个命令按钮会引发一个是/否/取消消息框,我想要一种机制来在随后的用户窗体和模块中记住这个选择,所以我将 boolNieuweOpdrachtgever 声明为公共变量,但是,在随后的表单中,调试行表明它根本不记得它的值。代码如下:
Public boolNieuweOpdrachtgever As Boolean
Public Sub nieuw_project_Click()
Dim nieuweOpdrachtgever As Variant
nieuweOpdrachtgever = MsgBox("Text", vbYesNoCancel)
Select Case nieuweOpdrachtgever
Case vbYes
boolNieuweOpdrachtgever = True
Debug.Print "In nieuw_project_Click() boolNieuweOpdrachtgever = " & boolNieuweOpdrachtgever
nieuweOpdrachtgeverForm.Show
Case vbNo
boolNieuweOpdrachtgever = False
Debug.Print "In nieuw_project_Click() boolNieuweOpdrachtgever = " & boolNieuweOpdrachtgever
nieuweOpdrachtForm.Show
Case Else
Exit Sub
End Select
End Sub
例如在 vbYes 的情况下,它会通过一个工作表单,然后进入第二个具有基于 boolNieuweOpdrachtgever 的 IF 语句的表单。然而,到那时它已经失去了它的价值。你能告诉我我做错了什么吗?
【问题讨论】:
-
它是否从 Select Case 中正确获取了它的值?
-
是的,调试会这样建议。我找到了一种解决方法来让它工作,但是我仍然对如何将变量值从(Sheet)模块获取到 UserForm 感兴趣。
标签: excel vba variables userform