我想在加载Access UserForm时声明一个Public(?)变量,并多次重复使用这些变量。我有几个AfterUpdate子程序可以运行并使用我在vba代码中定义的公共变量。我知道我可以在一个子变量中定义变量,然后在AfterUpdate子变量中调用该子变量,但是我不希望我的代码的一半只是再次调用相同的子变量,并希望使其更整洁。
我试图弄清楚Public / Global Variable方法,但是我一生无法理解。
下面是一个简单的示例,其中有四个名为A,B,C和D的文本框,我希望var和error消息是可变的,只要加载此表单,它们都是常量。
Option Compare Database
'declare constant variables
Public var as String
Public error_message as String
var=5
error_message="input a lower value"
Private Sub A_AfterUpdate()
If A.Value > var Then
MsgBox error_message
End If
End Sub
Private Sub B_AfterUpdate()
If B.Value > var Then
MsgBox error_message
End If
End Sub
Private Sub C_AfterUpdate()
If C.Value > var Then
MsgBox error_message
End If
End Sub
Private Sub D_AfterUpdate()
If D.Value > var Then
MsgBox error_message
End If
End Sub
我如何更改此格式以便其正常工作?再次,我知道我可以调用定义了var的Sub并返回它,但是我宁愿不对每个AfterUpdate这样做。
谢谢。
答案 0 :(得分:3)
您是对的-听起来像您想要一个“全局变量”
您也是正确的-方法是:
a)定义子例程或函数的变量 OUTSIDE 。
b)将变量标记为“公共”。
如果可以避免的话,您可能不想将变量命名为“ var”(或“ A”,“ B”或“ C”)。我认为这些只是“示例”。
通常为全局变量创建一个新的单独的VBA模块。在这里,您可以定义变量“ Global”。
我还喜欢在所有模块中添加“ Option Explicit”。
您可能对此链接也很感兴趣: