我正在 VBA 中处理一些遗留的意大利面条代码,并希望使用包含 2 个命令按钮的用户窗体来中断当前进程。根据单击的内容,代码将在弹出表单时运行的同一个子程序中继续运行。基本上,我只需要按钮 1 来分配 MyVariable = 1 和按钮 2 MyVariable = 2。但是我一生都无法将任何内容反馈到原始子系统。我尝试过的每种正常方式要么给出语法错误,要么只是不传递变量。我在这里缺少什么?
我目前有一个非常简单的布尔变量。如果按下按钮 1,则按钮子部分内的 MyVariable = true。然后我只想要在原始子中使用该值读回的简单 IF 语句。我目前正在使用 MyUserForm.show 调出表单并尝试从那里执行。我在这里需要完全不同的方法吗?
我尝试使用 .show 命令启动用户表单,并在每个按钮的子控件中添加变量定义。我试图让按钮起作用而不是低音炮,但它为此对我大喊大叫。我尝试定义我想要的变量作为子名称的一部分,但再次出现错误。我是用户表单的新手,但看起来它确实不可能像我做的那么难。
您可以使用表单代码模块中的全局变量以及处理按钮事件来解决它。
但就您的目的而言,使用 MsgBox 函数似乎是一种更简单的方法。
elected = MsgBox("Continue?", vbYesNo, "What to do")
If elected = 6 Then
'Yes was pressed
Else
'No was pressed
End If
按下
Yes
时,该函数返回 6;按下 No
时,该函数返回 7。