我想知道,在VBA中,是否可以定义和创建一个类对象,它是另一个现有类对象的特定示例。例如,我想创建一个名为SpecialWorkbook的类,它具有特定于我的目录中的唯一工作簿(类)的属性。这些属性包括路径、名称、全名(路径和名称)、密码等。
我知道有可能访问Application.Workbook类的所有属性--
With Application.Workbooks(SpecialWorkbook.Name)
--但是该路线对于用户来说可能看起来不直观,因为SpecialWorkbook类不具有标准Workbook类的属性和方法。
是否有可能执行以下操作:
'In Class Module "SpecialWorkbook"
Private Sub Class_Initialize()
Dim SpecialWorkbook as Workbook
Set SpecialWorkbook = Application.Workbook("SpecialFileName.xlsx")
End Sub
然后像这样使用它:
'In Standard Module
SpecialWorkbook.sheets.count
上面的“例如”显然不工作,但这是一般的想法,我想实施,如果可能的话。
先谢了!
2条答案
按热度按时间o4tp2gmn1#
您需要的是静态类。
为了让它工作,你只需要做一个改变,比如,你有一个名为
SpecialWorkbook
的类:1.您需要在导出时删除此类(删除SpecialWorkbook -〉是-〉选择位置)。
1.在任意文本编辑器中打开SpecialWorkbook.cls,并将
Attribute VB_PredeclaredId = False
更改为Attribute VB_PredeclaredId = True
。1.保存更改并导回此类模块。
现在,您可以按以下方式使用它:
添加所需的其他属性和方法。
bjp0bcyl2#
这是不可能的,也不是真的需要。我只想引用一个特定的对象,而不是多个示例。因此,我只需要一个 Package 器:
这里假设“C:\Temp\mybook.xlsx”存在,并且是我的特殊工作簿。