打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA基础-对象变量的声明与使用

Sub useobejct()

'声明对象变量

Dim MSheet As Object 

'声明一个叫做MSheet的对象变量,未指定特定的对象类型

Dim MSheet1 As Worksheet

'声明一个叫做MSheet的工作表对象变量,仅仅是工作表类型

Dim MRange As Range 

'声明一个叫做MRange的range对象变量

'如果事先没有声明对象变量,那么其数据类型在默认情况下是Variant类型

'对象变量赋值

'对变量进行赋值的语法: set 变量 = 表达式

'对象变量不存储数据,它指向数据的存储位置

Set MSheet = ThisWorkbook.Sheets("Sheet1")

'给对象变量MSheet赋值,这个值指向当前工作簿的工作表Sheet1

'如果忽略了关键字Set,VB将会显示一个错误信息——“运行时间错误91:对象变量或With块变量未设置”

Set MRange = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")

'给对象变量MRange赋值,这个值指向工作表Sheet1的单元格区域A1:A10

'这句代码如果把MRange换成Msheet赋值是可以的(因为Msheet没有特定的对象类型),但是给Msheet1会报错,“类型不匹配”

'对象变量的使用

MSheet.Name = "WX公众号-VBA代码集锦" 

'把MSheet的名字改成"WX公众号-VBA代码集锦",不需要写一大串地址,此时MSheet变为Sheets("VBA代码集锦")

MSheet.Name = "Sheet1"  

 '把MSheet的名字改成Sheet1,此时MSheet变为Sheets("Sheet1"),其实一直都是同一个Sheet1

MRange.Interior.Color = 65535

'工作表Sheet1的单元格区域A1:A10填充为黄色

MRange.Interior.ColorIndex = 0 

或  MRange.Interior.Color = xlNone

'去除工作表Sheet1的单元格区域A1:A10的底色

'当对象变量不再需要时,给它赋值Nothing,释放内存和系统资源

'此时对象变量停止与任何特定对象的对象变量关联,防止意外地通过更改变量而更改对象

Set MSheet = Nothing

Set MRange = Nothing

'好处

'使用对象变量可以使代码更简洁,同时可加快代码的执行速度。

End Sub

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
vba设置选定单元格行的字体自动变大和变色
Excel 2010 中的 VBA 入门
Excel揭秘8:看看方括号在VBA中的妙处——有用的Evaluate方法
第11章 对象概述
VB,VBA优化技巧整理
Excel VBA编程的常用代码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服