【发布时间】:2020-09-15 17:49:28
【问题描述】:
我正在通过 Google、YouTube 等学习 VBA。我遇到了 Class Modules。
我有一个Tracker Template。
每隔几天我就会收到一份报告 ("Ice cream FG Inv.xlsm")
在尝试理解Class Modules 时,我发现了一个模板,该模板创建了一个类模块(在跟踪器模板中)WBIceCreamFGINVxlsm,为Ice Cream FG Inv.xlsm Workbook 中的所有工作表创建了一个代码名。
例子:
Public Property Get wsinventory() As Worksheet
Set wsinventory = Workbook.Worksheets("Inventory")
End Property
在我的模块中,我想引用 wsinventory,但不了解如何“调用”类模块..
两个工作簿都是打开的。
我试着从:
Dim Data As Variant
Data = wsinventory.Range("A1").CurrentRegion.Value (**Variable not Defined**)
然后我尝试了:
Dim wsinventory As Worksheets
With wsinventory
Dim Data As Variant
Data = .Range("A1").CurrentRegion.Value (**Object variable or With variable not set**)
End With
我还需要使用吗:
Dim DataSource As Workbook
Set DataSource = Workbooks("Ice Cream FG Inv.xlsm")
With DataSource.Worksheets("Inventory")
End With
如果是这样,使用类模块的原因是什么?
【问题讨论】:
-
看来你过于复杂了。
-
我很有可能!我疯狂地在谷歌上搜索 VBA,试图找到最好/有效的做事方式。所以,什么时候可以使用类模块。
-
不是这个场合...我会先专注于学习 Excel 对象模型。