好的,我知道我可以做到这一点:
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的工作表对象中。这更多是为了尝试理解层次结构,但出于实际目的,我想让wss包括来自工作簿x的所有工作表,这样我只需执行 ws = wss(1)
而不是说 set ws = wb.worksheets(1)
。
那是否可能实现,或者我误解了工作表/工作表之间的关系?
Sheets
和Worksheets
的成员,它们是一样的。帮助文件说Worksheets
返回工作表集合,我觉得这应该没问题,因为我对图表不感兴趣。我只想利用workbook.worksheets
集合来创建一个工作表对象。我觉得我可能漏掉了一些简单的东西,所以想看看这个论坛有什么好的建议!我发现这里的代码创意最多,解释也最简单(相比官方文档)。 - jamheadartSheets
和Worksheets
属性,您会发现它们都返回一个Sheets
对象。 - CominternWorksheets
会返回一个Sheets
集合而不是一个Worksheets
集合。谢谢你的澄清。 - jamheadartWorksheets
的Sheets
集合。我想我今天已经写够了VBA :D - jamheadart