《VBA之Excel应用》(版权10178983)是非常经典的,是我推出的第七套教程,定位于初级,目前是第一版修订。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是:VBA之Excel应用第三章第一节:对象的层次结构
【分享成果,随喜正能量】有一些心地险恶的人,我们看到他的面貌都可以看到他心中的恶念,都可以感觉到他脸上的杀气,遇到这样的人我们会远离他,感到很恐怖,不寒而栗。但是恶念的相貌也可以改变的,正所谓心好相貌就会好。。
第三章 工作簿(Workbook)和工作表(Worksheet)对象(Object)
大家好,我们今日开始讲解工作簿(Workbook)和工作表(Worksheet)对象(Object),我们经常讲的面向对象编程,这里的工作表和工作簿就是所谓的对象。对象是一个名词,每个对象有着自己的属性和方法。这些属性和方法就是我们要利用的工具。这个章节中我们将讲解到对象的层次结构、集合、属性和方法,同时还会讲解到工作簿的打开和关闭以及工作表的循环处理。由于这套教程是针对EXCEL而写的,所以这章内容非常重要。
第一节 对象的层次结构
在Excel VBA中,一个对象可以包含另一个对象,该对象也可以包含另一个对象。换句话说,Excel VBA编程会涉及到对象层次结构的处理。对于EXCEL本身,我们称之为应用程序对象;应用程序对象包含很多对象,例如,工作簿对象(Excel文件);工作簿对象中还包含其他对象,如工作表对象;工作表对象包含其他对象,例如Range对象。
1 对象层次结构的描述
我们在写代码的时候,其实利用的就是一种层次结构,如我们在“工作簿01.xlsm”程序文件中曾经利用过下面的代码:
Private Sub CommandButton1_Click()
学习"
End Sub
下面我们把Range("a1").Value = "VBA学习"这句代码来补充完整,写成如下:
Application.Workbooks("工作簿03.xlsm").Worksheets(1).Range("A1").Value = "VBA学习"
我们看下面的过程代码:
Sub mynz()
工作簿03.xlsm").Worksheets(1).Range("A1").Value = "VBA学习"
End Sub
我们来逐步解析一下代码:
1)Application 对象指的是EXCEL。
2)Application.Workbooks("工作簿03.xlsm")指的是EXCEL文件"工作簿03.xlsm".
3) Application.Workbooks("工作簿03.xlsm").Worksheets(1) 指的是EXCEL文件"工作簿03.xlsm".的Worksheets(1)工作表。
4)Application.Workbooks("工作簿03.xlsm").Worksheets(1).Range("A1") 指的是指的是EXCEL文件"工作簿03.xlsm".的Worksheets(1)工作表中"A1"的单元格。
5).Value 是指值的属性。
这样我们就了解了对象的层次结构。如果大家能看到我的高级教程《VBA中类的解读和应用》,其中我们对于这种层次结构会有更加详细的讲解。这里大家只需初步了解一下即可。
2 对象的集合结构
我们已经注意到,工作簿和工作表都是复数形式。那是因为它们是集合。工作簿集合包含当前打开的所有工作簿对象。“工作表”集合包含工作簿中的所有工作表对象。所以,在对象的层次结构中,集合是非常重要的概念。我们要想访问所有工作表对象,只需要在工作表集合中逐一访问即可,这种访问我们称之为“遍历”。
3 工作表对象的引用方法
为了引用工作表对象,我们可以通过三种方式:
1)使用工作表名称
如下面的代码:
Sub mynzA()
学习"
End Sub
这里我们通过引用工作表名称"Sheet1"来指向这个工作表。
2 使用索引号(1是从左边开始的第一个工作表)。
Sub mynzB() '使用索引号来引用工作表
学习"
End Sub
这里我们通过使用索引号来指向这个工作表。
- 表示索引号的1,是不带引号的
3使用工作表的CodeName
Sub mynzC() '使用CODENAME来引用工作表
学习"
End Sub
这里我们通过工作表的CodeName来指向这个工作表。所谓工作表的CodeName如VBE窗口中所示: - 注意:如果更改工作表名称或工作表顺序,CodeName将保持不变,因此这是引用工作表的最安全方法。单击“视图”、“属性”窗口可更改CodeName。有一个缺点,如果引用其他工作簿中的工作表,则不能使用CodeName。
今日内容回向:
1)什么是对象的层次结构?
2)如何引用一个工作表对象?
3) 如何理解对象的集合?
本讲内容参考程序文件:工作簿03.xlsm
我20多年的VBA成果全在下面的资料中: