本帖最后由 hwc2ycy 于 2013-12-5 23:18 编辑
工作簿对象介绍完了,接下来我们讲讲Sheets对象。 Sheets对象是指定的或者活动工作簿中所有工作表的集合。 Sheets集合可以合包含工作簿中的所有工作表(图表工作表和工作表)。 今天先讲讲Sheets对象的属性。
Count属性 返回一个 Long 值,它代表集合中对象的数量。 示例: MsgBox "当前Sheets对象中成员数量:" & Sheets.Count Sheets.Add Type:=xlWorksheet MsgBox "插入一个工作表后,集合中成员数量为:" & Sheets.Count Sheets.Add Type:=xlChart MsgBox "插入一个图表工作表后,集合中成员数量为:" & Sheets.Count
代码先显示当前Sheets对象中成员数量,然后再分别插入工作表,图表工作表并在插入完成后显示成员数量。
Parent属性 返回指定对象的父对象,只读。 Sheets对象隶属于工作簿对象,so,Parent属性返回的是包含该Sheets对象的工作簿 示例: MsgBox Sheets.Parent.Name
Item 属性 从集合中返回一个对象。 语法:Item(Index) Index可为对象的名称或索引号。 之前在讲Workbooks时有提到1和”1”的区别,这里同样适用。 由于这个是缺省属性,所以可以省略。 Sheets(1)与Sheets.item(1)是等价的。 示例: Dim sht As Object Dim str As String If Sheets.Count > 0 Then str = "当前工作簿中有以下工作表:" & vbCrLf For Each sht In Sheets str = str & sht.Name & vbCrLf Next MsgBox str End If 通过对话框显示当前工作簿中Sheets集合中所有成员的名称
Visible 属性 通过设置True或False,确定对象是否可见。
隐藏工作表时需要注意的是,一个工作簿中,必须有一个工作表可见。 除非设置工作簿的isAddin属性,这样不光工作表不可见,就连工作簿也不可见。
在使用这个属性设置隐藏时,可以批量(注意保留一个可见)
Sheets(Array( 2, 3, 4)).Visible = False
如果想逆向再操作,批量取消隐藏,估计会想当然的用Sheets(Array( 2, 3, 4)).Visible = True。这样就是万万不能的呢。
取消就挨个来实现,为什么呢?
有兴趣的童鞋可以动手试试,你可以一次选中二个工作表(假设当前工作簿中有3个工作表),右键隐藏。
然后你再试试右键取消隐藏,能否在对话框中实现一次取消多个?
VPageBreaks 属性 返回一个 VPageBreaks 集合,它代表工作表上的垂直分页符。只读。 可以通过代码来对垂直分页符集合的操作,这里不做介绍,只需知道有这么个集合。
HPageBreaks 属性 返回一个 HPageBreaks 集合,它代表工作表上的水平分页符。只读。 示例: Dim str As String str = "水平分页符:" & ActiveSheet.HPageBreaks.Count & vbCrLf str = str & "垂直分页符:" & ActiveSheet.VPageBreaks.Count MsgBox str
Application 属性 如果不使用对象识别符,则该属性返回一个 Application 对象,该对象表示 Microsoft Excel 应用程序。
如果使用对象识别符,则该属性返回一个表示指定对象(可对一个 OLE 自动操作对象使用本属性来返回该对象的应用程序)创建者的 Application 对象。
使用OLE自动化操作时可看出区别。
补充知识点: Thisworkbook,表示其中正在运行当前宏代码的工作簿(加载宏内部只能通过该属性来引用加载宏自身)。
ActiveWorkbook,表示当前的活动工作簿。在加载宏内部引用该属性只会返回调用该加载宏的工作表。如果没有活动工作簿,则返回Nothing。
ActiveSheet,代表活动工作簿中或指定的窗口或工作簿中的活动工作表(最上面的工作表)。如果没有活动的工作表,则返回 Nothing。
|