【发布时间】:2013-10-02 12:05:10
【问题描述】:
我在这里有点挣扎。
我在表单 (MainForm) 上创建了一些公共变量。我现在意识到我需要将其中一些变量的范围扩展到其他形式。
因此,我将 Public 声明移到了一个名为“Globals”的新模块中。
当我尝试运行新表单时,当我尝试将其值重置为“”时,我收到了关于不明确变量的投诉。使用相同变量的“MainForm”没有投诉。
模块“全局”
Public myIP As String
Public myStatus As String
新表格:
myStatus = "" << throws an err
将公共变量声明移动到模块中是否正确?
对新表单中的“模糊变量”错误有什么想法吗??
谢谢!
【问题讨论】:
-
公共变量应该在模块中声明。当在表单上声明时,它成为表单的属性,可以通过 formname.property 访问。 Scope of Variables
-
同意。因此,移动模块“全局”应该扩大范围。但是,当我尝试重置该变量的值时,我不得不为模棱两可的变量名 err 苦苦挣扎。我不会以新形式重新声明该变量。
-
通过表单引用调用变量确实有效,但看起来很麻烦:Forms!MainForm.myStatus
-
将变量声明为“Global myStatus as string”似乎满足了我的需求。这是正确的吗?
-
“模糊变量”错误发生在同一模块内多个同名变量的情况下。通过单击标准工具栏上的 Debug > Compile VBA Project 可以轻松识别这些错误。