嗨朋友我在vba中有一个类,我在其中定义了一个这样的参数:
Public lcl As Boolean
首先,我在此块中设置此参数:
If MsgBox("Lokal ?", vbYesNo, conConnectMsg) = vbYes Then
strTmp = CurrentDb.name
lcl = True
Else
strTmp = pconDatenVerzeichnisStandard & Me.DataMDB
lcl = False
End If
我希望从From访问此参数,但此布尔参数lcl
始终为false。我的代码是否正确?我的代码中有什么问题,lcl
始终为假
答案 0 :(得分:1)
首先检查此链接: Class Modules vs. Standard Modules
我并不习惯OOP iv VBA,但我认为如果你在一个模块中声明一个类似的变量,它将是Global,但在一个类中它将是一个属性你必须这样访问:
yourClassInstance.lcl ' Because it is public
(如果private
:使用Let
/ Get
... Classes in VBA)
无论如何,我只是说你在使用全局变量时必须要小心(最后一个链接:Global variables即使它是关于c的男人)
但重点是:您必须使用对象的实例来访问lcl
最后一点:如果尚未完成,请在模块/类的顶部添加Option Explicit
,因为它可能会对此类情况有所帮助...如果您不这样做,如果您使用{{ 1}}某个地方它不存在但VBA会创建它,它可能是发生了什么(它使用本地 lcl
)
希望这会有所帮助,我没有足够的代码来了解究竟发生了什么。