【发布时间】:2016-09-24 23:35:41
【问题描述】:
好吧,我知道我可以做到:
Dim ws as worksheet
Set ws = thisworkbook.worksheets("Sheet1")
然后用ws 工作表对象做我喜欢的事情
我也知道我可以Dim wss as worksheets 并且使用worksheets("Sheet1") 返回工作表对象。那么为什么以下方法不起作用?
Dim wss as worksheets
Dim ws as worksheet
Set wss = thisworkbook.worksheets
Set ws = wss("Sheet1")
我也试过了:
Dim wss as worksheets
Dim ws as worksheet
Set ws = thisworkbook.wss("Sheet1")
但后者看起来就像我正在尝试重命名/缩短“工作表”,这似乎完全错误。我正在尝试将工作簿的工作表放入一个名为 wss 的工作表对象中。这更多的是试图理解 heirachy,但出于功能目的,我试图让 wss 包含工作簿 x 中的所有工作表,所以我可以只做 ws = wss(1) 而不是说 set ws = wb.worksheets(1)
这是可能的还是我误解了工作表/工作表的关系?
【问题讨论】:
-
通常最容易通过using the Object Browser 找到此类问题的答案并查看方法或属性定义。
-
我查看了 Sheets 和 Worksheets 的成员,它们都是相同的。帮助文件说
Worksheets返回工作表集合,我认为这很好,因为我对图表不感兴趣。我只想利用 workbooks 对象来利用 workbook.worksheets 集合。我想我错过了一些简单的东西,所以我想看看这个论坛提供了什么!我在这里看到了最有创意的代码和/或简单的解释(与官方文档相比)。 -
文档具有误导性。如果您查看
Sheets和Worksheetsproperties,您会发现它们都返回Sheets对象。 -
好的,这就是混乱所在。我不太明白为什么
Worksheets会返回Sheets集合而不仅仅是Worksheets集合。感谢您的澄清。 -
这是一个
Sheets集合,仅包含Worksheets。我想我今天已经受够了 VBA :D