通过前面两篇文章的学习,我们已经了解了Excel VBA的变量,知道了如何给变量赋值。下面,我们详细谈谈Excel中很重要的对象变量。
变量除了可以表示数值、字符串等外,还可以表示一个工作簿、一张工作表、一个单元格,这就是对象变量(Object类型的变量)。
声明对象变量 对象变量的声明没有什么特殊之处,仍然是使用Dim语句或者Public语句。下图1是一些常用的对象声明示例: 图1 注意:当我们不知道对象变量的具体类型时,可以将其声明为通用的Object类型。
给对象变量赋值 对象变量的赋值与普通变量的赋值不同,必须使用关键字Set。 例如,使用下面的语句将变量rng声明为Range对象: Dim rng As Range 然后,使用下面的语句给变量rng赋值: Set rng = Worksheets('Sheet1').Range('A1:B2') 现在,我们就可以使用变量rng来代表工作表Sheet1中的单元格区域A1:B2。 此时,再运行代码: rng.Value = '示例' 将在单元格区域A1:B2中输入“示例”文本,如图2所示。 图2
注意:在给对象变量赋值时,一定要加上关键字Set。很多代码错误往往就是在给对象变量赋值时没有使用Set。 给对象变量赋值的通用结构为: Set 对象变量名= 对象
使用对象变量的好处 仍然使用上面给单元格区域A1:B2输入文本“示例”的例子。如果不使用对象变量,那么将使用下面的代码来操作该区域: Sub test() Worksheets('Sheet1').Range('A1:B2').Value = '示例' Worksheets('Sheet1').Range('A1:B2').Font.Bold = True Worksheets('Sheet1').Range('A1:B2').Font.Size = 19 Worksheets('Sheet1').Range('A1:B2').Interior.Color =vbYellow End Sub 该段代码首先在工作表Sheet1的单元格区域A1:B2中输入文本“示例”,然后将字体加粗,字号大小调整为19号,将单元格背景色设置为黄色。
让我们再来看看使用对象变量达到同样效果的代码: Sub testUpdate() Dim rng As Range
Set rng =Worksheets('Sheet1').Range('A1:B2')
rng.Value = '示例' rng.Font.Bold = True rng.Font.Size = 19 rng.Interior.Color = vbYellow End Sub 代码显得更简洁,似乎运行的速度也加快了。因此,我们总结使用对象变量的好处有:
Sub CreateNewWorkbook() '声明工作簿和工作表对象变量 Dim wb As Workbook Dim wks As Worksheet '创建新的对象实例并赋值 Set wb = Workbooks.Add Set wks =wb.Worksheets('Sheet1') '对工作表进行操作 wks.Name = '我的工作表' '重命名工作表 wks.Range('A1')= 'Test' '给工作表中的单元格A1填充值 End Sub |
|