Excel-VBA基础(12):VBA中对象、集合、属性和方法

对象代表应用程序中的元素,类似于汽车中的轮子、发动机等。Excel中也有许多对象,例如:工作簿、工作表、单元格、图表、窗体,或是一份报告。程序中调用对象的任一方法或改变它的属性之前,必须先声明对象。

下图是Excel中的4个主要对象及其层次关系。

v2-ab2d7054493da36ebb168ced61e97b96_b.jpg

对象集合

对象集合是一个包含几个子对象的集合。例如,在Excel中的Workbooks 对象包含了所有已打开的Workbook(工作簿)对象,Worksheets对象集合包含了某个工作簿中的所有工作表Worksheet。

集合中的项目可以通过索引号或名称来做识别。例如,在下面的过程中 Workbooks(1) 会关闭索引号是1的工作簿对象。

Sub CloseFirst()
Workbooks(1).Close
End Sub

下面的过程先定义一个工作表对象wkSheet,再将名称为“test”的工作表赋值给对象wkSheet,然后对工作表wkSheet中的单元格进行操作。

Sub Sample233()
Dim wkSheet As Worksheet '定义工作表对象
'将当前工作簿(ch2.3.xlsm)的"test"工作表对象赋值给wkSheet
'Worksheets是工作表集合,"test"工作表是其中的一个子集
Set wkSheet = ThisWorkbook.Worksheets("test")
'另一种赋值的方法,将"ch2.3.xlsm"工作簿的"test"工作表对象赋值给wkSheet
'Workbooks是工作簿集合,"ch2.3.xlsm"是其中的一个子集
Set wkSheet = Workbooks("ch2.3.xlsm").Worksheets("test")
'Range对象是已定义完毕wkSheet对象的子对象
wkSheet.Range("a2").value = "this is a test"
'将wkSheet释放
Set wkSheet = Nothing
End Sub

对象的方法

方法指的是对象能执行的动作。例如,Add是下拉列表控件ComboBox对象的一个方法,因为它会增加一个新项目到下拉式列表框中。

下面的程序调用 Add 方法,增加一个新的项目到下拉列表控件“Combo1”项目中。

Sub AddEntry(newEntry as String) ' newEntry作为过程的参数被传入过程AddEntry
Combo1.Add newEntry ' newEntry作为一个项目增加到下拉列表框中
End Sub

如果对象共享共同的方法,则可以操作整个对象集合。例如,下列的过程会预览本工作簿所有的工作表。

Sub Sample243()
ThisWorkbook.Worksheets.PrintPreview
End Sub

对象的事件

事件是一个对象可以辨认的动作,像单击鼠标或按某键等,在系统捕捉到对象的事件后,执行该事件对应的程序代码,从而实现相应控制。

不同的对象具有不同的事件,例如工作簿拥有的事件:Open、Activate、BeforeClose、BeforePrint、BeforeSave、NewSheet、SheetChange等,工作表拥有的事件:SelectionChange、Change、Activate等。

当打开工作簿时初始化系统、显示个性工具栏等都需要在工作簿的Open事件中添加相应程序代码。如果单元格内容被修改后,需要提示用户,那么在工作表的SelectionChange事件中添加代码即可。

简要示例如下:

Private Sub Workbook_Open()
MsgBox "您打开了当前的工作簿!"
End Sub

对象的属性

一个对象的属性定义了对象的特征,诸如大小、颜色或屏幕位置,或某一方面的行为,诸如对象是否激活或是否可见。可以通过修改对象的属性值来改变对象的特性。

若要设置属性值,则在对象的引用后面加上一个表达式,它是由属性名加上等号(=) 以及属性值所组成的。例如,下面的过程通过设置“test”工作表的名称而改变工作表的标签名称。

Sub Sample245()
ThisWorkbook.Worksheets("test").Name = "test11"
End Sub

有些属性并不能设置,只能读取。通过检索每属性的帮助主题,可以看到是否可以设置此属性(读与写),或只能读取此属性(只读),还是只能写入此属性(只写)。

可以通过属性的返回值,来检索对象的信息。下列的过程使用一个消息框来显示标题,它显示在当前活动窗体顶部。

Sub GetWindowName()
Dim WindowName As String
'将活动窗口的标题赋值给变量WindowName
WindowName = Application.ActiveWindow.Caption
'显示该变量值
MsgBox WindowName
End Sub

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值