我有这个简单的类模块CLXXX ....访问类模块中的私人领域
':: backing field
Private fTemplateBk As Excel.Workbook
':::::::::::::::::::::::::::
'::
':: constructor
Private Sub Class_Initialize()
End Sub
':::::::::::::::::::::::::::
'::
':: properties
Property Get TemplateBk() 'As Excel.Workbook '<< different error messages depending on if "As Excel.Workbook" is included or not
TemplateBk = fTemplateBk
End Property
':::::::::::::::::::::::::::
'::
':: methods
Public Sub openTemplate()
Set fTemplateBk = Excel.Workbooks.Open("\\xxx\yyy\zzz.xlsx")
End Sub
Public Sub someMethod()
Me.TemplateBk.Sheets(1).Activate
End Sub
普通模块:
Sub control()
Dim x As clXXX
Set x = New clXXX
x.openTemplate
x.someMethod '<<<<<<errors here
End Sub
我只想通过读取访问私有字段fTemplateBk
- 仅限房产TemplateBk
使用代码,如me.TemplateBk. ...
。我如何修改上述所以这是可能的?
缺少'Set'你的财产得到.... – 2014-10-31 15:05:01
另外,为什么在类中使用属性?您已经有权访问成员字段。 – citizenkong 2014-10-31 15:05:38
@citizenkong - 这是一个很好的做法,使用财产vs支持领域。例如见http://stackoverflow.com/questions/271318/should-you-access-a-variable-within-the-same-class-via-a-property – 2014-10-31 16:01:19