gpt4 book ai didi

vba - 类方法不能使用同一个类的私有(private)属性?

转载 作者:行者123 更新时间:2023-12-04 20:05:23 26 4
gpt4 key购买 nike

我对 VBA 类中的私有(private)属性有什么误解?作为一个新手,我希望私有(private)属性可以被同一类(模块)中的其他方法访问,但是在尝试编译时我得到“找不到方法或数据成员”。

休息为私有(private)属性(property) Let lngMarketID

这是我的标准模块中的内容:

Option Explicit

Public Model As classModel

Set Model = New classModel
Model.Setup

使用名为 classModel 的此类模块:
Option Explicit

Private plngMarketID As Long


'plngMarketID Properties
Public Property Get lngMarketID() As Long
lngMarketID = plngMarketID
End Property
Private Property Let lngMarketID(ByVal lngMarketID As Long)
plngMarketID = lngMarketID
End Property


Public Sub Setup()

SetuplngMarketID

End Sub

Private Sub SetuplngMarketID()

Model.lngMarketID = CLng(DefaultLogicOptions.textboxMarketID.Value)

End Sub

用作公共(public)属性(property) Let lngMarketID

“未找到方法或数据成员”突出显示 .lngMarketID SetuplngMarketID 中的行.当我更改 Private Property Let lngMarketID 时,这编译得很好至 Public Property Let lngMarketID .

最佳答案

它是该行中的“模型”。 Model 是一个全局变量,指向你的类的某个特定实例。从那个对象,只有公共(public)的东西是可见的。

您想从类的任意实例“内部”引用它,因此只需删除 Model 前缀:

Private Sub SetuplngMarketID()

lngMarketID = CLng(DefaultLogicOptions.textboxMarketID.Value)

End Sub

关于vba - 类方法不能使用同一个类的私有(private)属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45889812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com