excel - 返回代码(VBA)时,公共值不更新
问题描述
当 Form 关闭并且代码导航回宏时,公共变量没有更新。
我创建的表单只有两个按钮“是”和“否”。当用户单击“否”时,我希望将变量设置为 false,如果“是”,它将为 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 编辑器中转到工具›选项›需要变量声明。这会产生一个警告来防止这个问题。
推荐阅读
- python-3.x - 如何返回通过更新 2 级字典获得的新字典?
- windows - 如何刷新当前 Inno 安装程序进程的环境变量?
- scala - sbt 1.x(或特别是 1.2.8)中的 CrossVersion.fullMapped 发生了什么?
- sql - 如何加入 Table2 并将 Table1 中的条目保持为 Null
- php - PHP:循环遍历对象数组并显示第一行中所有记录的总和
- firebase - 将 Firebase Analytics 集成到带有钥匙串警告的 Xamarin iOS 垃圾邮件日志中
- python - 使用 id 访问动态添加的小部件
- angular - 如何禁用 Angular 样式指南的 tslint 规则:“选择器应以
“? - c# - 在 SDK4 中使用自适应卡时如何等待用户输入
- python - 从外部列表中按熊猫中的索引和列填充单元格值