当表单关闭并且代码导航回宏时,公共(public)变量没有更新。
我创建的表单仅使用两个按钮"is"和“否”。当用户单击“否”时,我希望将一个变量设置为 false,如果选择"is",则该变量将为 true。
这是工作表代码
Public bool As Boolean
Sub test2()
Claims.Show
If bool = True Then
Range("A1") = "Yes"
ElseIf bool = False Then
Range("A1") = "No"
Else
Range("A1") = "Nothing"
End If
End Sub
下面的表格我想要一个值
Priate Sub No_Click()
bool = False
Unload Me
End Sub
Private Sub Yes_Click()
bool = True
Unload Me
End Sub
最佳答案
在模块中声明变量,而不是在
ThisWorkbook
中声明变量。Public bool As Boolean 'in a module
程序
Test2
可以在ThisWorkbook
中:Sub test2() Claims.Show If bool Then Range("A1") = "Yes" Else Range("A1") = "No" End If End Sub
请注意,
bool
只能是True
或False
,没有 3ʳᵈ 选项。所以可以减少。另请注意,您应该为范围指定工作表,例如ThisWorkbook.Worksheets("Sheet1").Range("A1") = "Yes"
,否则 Excel 将使用哪个工作表处于事件状态。您想要将按钮放置在何处的过程
Private Sub No_Click() bool = False Unload Me End Sub Private Sub Yes_Click() bool = True Unload Me End Sub
我建议始终激活Option Explicit
:在 VBA 编辑器中,转到工具 › 选项 › Require Variable Declaration 。这会生成警告以防止出现此问题。
关于excel - 返回代码时公共(public)值不会更新 (VBA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57807608/