《VBA之Excel应用》(版权10178983)是非常经典的,是我推出的第七套教程,定位于初级,目前是第一版修订。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是:VBA之Excel应用第三章第一节:对象的层次结构

VBA之Excel应用第三章第一节:对象的层次结构_VBA



【分享成果,随喜正能量】有一些心地险恶的人,我们看到他的面貌都可以看到他心中的恶念,都可以感觉到他脸上的杀气,遇到这样的人我们会远离他,感到很恐怖,不寒而栗。但是恶念的相貌也可以改变的,正所谓心好相貌就会好。。


第三章 工作簿(Workbook)和工作表(Worksheet)对象(Object)

大家好,我们今日开始讲解工作簿(Workbook)和工作表(Worksheet)对象(Object),我们经常讲的面向对象编程,这里的工作表和工作簿就是所谓的对象。对象是一个名词,每个对象有着自己的属性和方法。这些属性和方法就是我们要利用的工具。这个章节中我们将讲解到对象的层次结构、集合属性和方法,同时还会讲解到工作簿的打开和关闭以及工作表的循环处理。由于这套教程是针对EXCEL而写的,所以这章内容非常重要。

VBA之Excel应用第三章第一节:对象的层次结构_VBA_02


第一节 对象的层次结构

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

VBA之Excel应用第三章第一节:对象的层次结构_表名_03




我20多年的VBA成果全在下面的资料中:



VBA之Excel应用第三章第一节:对象的层次结构_VBA_04