对象是程序的一个元素,不同于基本类型数据,它包括多个属性和多个方法。例如,Excel 中工作簿、工作表、单元格、图表等都是对象。
对象使用 Set 关键词,并且Set 关键词不能省略。
如下是对象类型变量基本的赋值方法:
由于对象可以包含多个属性,因此 VBA 提供一种同时给多个属性赋值的简单方法。具体方法是对象多个属性赋值语句,放置在 With +对象 和End With 关键词中间。
Dim sheet As Worksheet Set sheet = Worksheets("绩效表") With sheet .Name = "旧绩效" .Visible = False End With |
如上图红框所示,括号里面的即为表名。在VBA中可如下分别引用这3个表:
Sub test() Dim sht_slea As Worksheet Dim sht_result As Worksheet Dim sht_para As Worksheet
Set sht_slea = Worksheets("SLEA") Set sht_result = Worksheets("Check_Result") Set sht_para = Worksheets("Parameter") End Sub
|
如上,用Dim 变量名 As Worksheet 的格式来定义一个工作表对象。用Set 变量名 = Worksheets("表名") 的格式来把工作表对象赋值给指定的变量。然后就可以用这个变量来引用或操作对应工作表中的对象和数据了。
单个单元格区域的引用
Sub test() Dim sht_slea As Worksheet Dim rng As Range
Set sht_slea = Worksheets("SLEA") Set rng = sht_slea.Range("D2")
Debug.Print rng End Sub
|
仅在Range对象引用的是单个单元格时,才可以用Debug.Print 或者MsgBox 来输出Range对象中的内容。如果将接下来介绍的引用了多个单元格的Range对象使用Debug.Print 或者MsgBox 来输出,将会报错。
连续单元格区域的引用
Sub test() Dim sht_slea As Worksheet Dim rng As Range
Set sht_slea = Worksheets("SLEA") Set rng = sht_slea.Range("D2:D5")
For Each Item In rng Debug.Print Item Next Item End Sub |
总结: range为单个的单元格时,可以直接使用debug.print在立即窗口输出,如果是多个值时,是需要使用循环加以显示。
|