前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA对象变量

VBA对象变量

作者头像
无言之月
发布2019-10-13 15:41:35
1.5K0
发布2019-10-13 15:41:35
举报

大家好,前面介绍了vba中两个主要的对象,单元格range对象和工作表worksheet对象,以及它们的属性和方法。

本节将在此基础上介绍对象变量(Object类型的变量)的相关内容。

变 量 复 习

对于变量以及变量的类型等内容可以通过链接回顾,主要是变量的类型,声明变量、变量赋值,作用域和存活期等。

本节则主要是声明变量和变量赋值部分。

前面代码中常使用integer整型变量、string字符串变量,先声明变量,再对变量赋值。如下图示例:

Dim i As Integer, j As String声明了i为整型变量,j为字符串变量,然后通过let i = 1和let j = "你好"分别为两个对象赋值,(等号右侧内容与变量的类型相同),代码中省略let。

对 象 变 量

回顾了常用变量的使用,下面介绍对象变量(Object类型的变量)的使用,与其他变量略有不同。先简单看个示例:

代码中将变量rng声明为range单元格对象,使用set语句为变量赋值,而赋值语句的右侧就是一个完整的range对象,即Worksheets(1).Range("a1")。

1、声明对象变量

使用对象变量前,首先通过dim语句声明变量,对象变量可以将其声明为通用的object变量,也可以声明为具体某种变量,几种常用的对象的一般写法如下:

dim obj as object 声明为通用变量

dim rng as range 声明为单元格对象

dim sht as worksheet 声明为普通工作表对象

dim wb as workbook 声明为工作簿对象

(变量的名字以容易分辨为佳,如果有多个可以加数字区分,比如rng1、rng2等等)

2、对象变量赋值

对象变量赋值时,使用set语句赋值,这与其他变量使用let语句赋值不同,且不省略。

注意除了object通用变量为,set语句赋值,左右两侧的对象变量的类型是要相同的。同样等号右边只要返回的是对象即可。

比如set rng=某单元格对象

示 例 一

下面通过示例来简单演示帮助理解。

Sub test()

Dim rng1, rng2 As Range

Set rng1 = ActiveSheet.Range("a1:a5")

Set rng2 = ActiveSheet.UsedRange

rng1.Interior.ColorIndex = 5

rng2.Interior.ColorIndex = 3

End Sub

代码中定义了rng1和rng2两个单元格变量,将ActiveSheet.Range("a1:a5")赋值给rng1变量,将ActiveSheet.UsedRange已使用的单元格赋值给了rng2,更改他们的背景色

ActiveSheet.UsedRange,虽然是工作表的属性,但返回的是单元格对象range("B1:B3")。所以可以赋值给rng2单元格变量。

示 例 二

Sub test()

Dim sht1 As Worksheet

Set sht1 = Worksheets.Add

sht1.Name = "汇总表"

End Sub

代码中定义了sht1为工作表变量,变量赋值时,worksheets.add方法返回新增的工作表对象赋值给sht1,即新建的工作表,将新工作表sht1的name属性更改。

示 例 三

Sub test()

Dim wb As Workbook, sht As Worksheet

Set wb = Workbooks.Add

Set sht = wb.Worksheets(1)

sht.Range("b2:b4") = "你好"

End Sub

代码中定义了wb为工作簿对象,sht为工作表对象。然后将worbooks.add新建的工作簿赋值给wb。

然后将wb.worksheets(1)即新增工作簿的第一个工作表赋值给sht。sht工作表中的b2:b4单元格的值改为“你好”。

示 例 四

Sub test()

Dim ft As Font

Set ft = Worksheets(1).Range("a1:a6").Font

With ft

.Name = "微软雅黑"

.Size = 15

.ColorIndex = 5

End With

End Sub

代码中定义ft为字体变量,将Worksheets(1).Range("a1:a6").Font的字体赋值给了ft变量,同时使用with语句,设置字体ft变量的name、size、corlorindex属性。

该示例使用了不常用的font字体对象,有助于理解本节的内容。


小 贴 士

前面介绍with语句时曾经介绍过,编写vba代码时除了编写正确外,还有注意优化代码的运行速度。

而如果VBA中如果调用过多的对象,会拖慢代码的运行速度,而使用对象变量既可以简化代码,还可以提高代码的运行速度。

如果对象变量等于nothing,那么会中断对象变量与指定对象的关联,这点也会用于检测对象变量是否指向某对象(从而可以应用于if语句判断)。

if 对象变量 is nothing

then 语句

end if


本节主要介绍了对象变量(Object类型变量),重在理解如何声明对象变量,以及变量对象的赋值,建议多尝试练习。

下节将会介绍专门用于处理对象和集合的循环语句For each...next语句,祝大家学习快乐。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel和Access学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档