Excel VBA解读(148): 数据结构—回顾对象模型中的集合

论坛 期权论坛 期权     
完美Excel   2019-6-29 21:07   2941   0
学习Excel技术,关注微信公众号:
excelperfect

在前面的学习中,我们已经知道,在Excel对象模型中,集合是一组属于同一类的对象,并且集合本身也是对象。下面是我们以前已经列举过的例子。

1所有打开的工作簿组成了工作簿集合,即Workbook对象组成了Workbooks集合。如下图1所示,当前打开的工作簿1.xlsm、工作簿2.xlsm、工作簿3.xlsm、……组成了Workbooks集合,其中每个工作簿都是集合中的一个Workbook对象。


图1

2一个工作簿中所有工作表组成了工作表集合,即某Workbook对象中所有Worksheet对象组成了Worksheets集合。如下图2所示,工作簿1.xlsm中包含4个工作表,每个工作表是一个Worksheet对象,它们组成了Worksheets集合。


图2

可以使用名称或索引值来引用集合中的对象,例如:
Workbooks(“工作簿1.xlsm”).Worksheets(“完美Excel”)
引用Workbooks集合中名为“工作簿1.xlsm”的工作簿中的工作表“完美Excel”。

集合对象有4种基本属性/方法:
  • Add方法:在集合中添加元素
  • Count属性:返回集合中元素的数量
  • Item属性:从集合中返回指定的元素
  • Remove方法:删除集合中的元素

下面以上图2所示的工作簿为例来演示集合对象的4种基本属性/方法。

代码:
Worksheets.Add
在图2所示的“工作簿1.xlsm”中添加一个工作表,如下图3所示。


图3

下面的代码返回“工作簿1.xlsm”中的工作表数量:
'返回数字5
Worksheets.Count

下面的代码返回“工作簿1.xlsm”中第3个工作表的名称:
'返回Sheet3
Worksheets.Item(3).Name
也可以使用键作为参数:
'返回Sheet3
Worksheets.Item("Sheet3").Name

然而,Remove方法对Workbooks集合和Worksheets集合均不适用。要删除Workbooks集合中的工作簿,可以使用文件操作中的方法。而Worksheets集合的Delete方法可以用来删除指定的工作表,如下面的代码所示:
'删除工作表Sheet3
Worksheets("Sheet3").Delete

Remove方法在自已创建的集合中可用,具体示例在后面的文章中给出。

除了Remove方法在Excel对象模型中的集合中不起作用外,Excel对象模型中的集合还有下面的通用属性:
  • Application属性:返回当前对象所在的应用程序
  • Creator属性:返回一个长整型值,代表创建该对象的应用程序
  • Parent属性:返回该集合对象的上层对象

仍以图2所示的“工作簿1.xlsm”为例来给出代码示例。
'返回Microsoft Excel
Worksheets.Application.Value

'返回 1480803660
Worksheets.Creator
Workbooks.Creator

'返回工作簿1.xlsm
Worksheets.Parent.Name

'返回 Microsoft Excel
Workbooks.Parent.Name

'返回 Microsoft Excel
Worksheets.Parent.Parent.Name

下一篇文章,将介绍创建自已的集合。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:195
帖子:39
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP