Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 5561|回复: 11

[分享] 【烟花原创】VBA零基础之第30篇 对象(五)

[复制链接]
发表于 2013-11-23 23:38 | 显示全部楼层 |阅读模式
本帖最后由 hwc2ycy 于 2013-12-4 21:15 编辑

  一篇我们讲了如何引用对象,主要是通过从对象集合中进行引用,今天我们讲讲如何使用对象变量来引用对象。
  什么是对象变量呢?
  前面已经有过讲变量了,通俗的说,就是变量的类型是对象类型,象单元格,工作表,工作簿这些。


声明对象变量
  和前面提过的变量声明基本上差不多,不过在as type的时候一定要指定一个对象类型。
  这个对象变量的类型必须是
VariantObject或一个对象的指定类型。
   '声明 objRange Variant 数据类型。
   Dim objRange
   
   '声明 objRange Object 数据类型。
   Dim objRange As Object

   '声明 objRange Range 类型。
   Dim objRange As Range


  注意,如果使用对象变量前没有声明它,则对象变量缺省的数据类型就是
Variant类型。
  当需等到过程运行才知道指定的对象类型时,可以利用 Object 数据类型来声明。
  一般使用 Object 数据类型来创建对任何对象的一般的引用

  如果知道指定的对象类型,推荐将对象变量声明成所知道的对象类型。
  例如,如果应用程序包含
Sample 对象类型,则可以用下列的语句来声明一个对象变量为 Sample 对象类型:
   Dim MyObject As Object    '声明为一般的对象。
   Dim MyObject As Sample    '只声明为 Sample 对象。


  声明指定的对象类型可以提供自动的类型检查,更快的代码,并增加可读性。
  当我们在对象变量名称后输入
.后时会有自动成员列表。(这在声明为ObjectVariant时可享受不到这项待遇的)


赋值对象给对象变量
  使用 Set 语句可以赋值一个对象给对象变量,也可以赋值对象表达式或是Nothing
  例如:
    Set objRange=range(“a1:C3”)
    Set objSht=worksheets(“sheet3”)

  设置一个对象变量等于 Nothing,会中断此对象变量与任何特定对象的关联,如此可预防因意外的改变变量而更改对象。
  一般会用代码过程结束前用这个来实现对对象变量的善后工作。

  在关闭关联对象后,对象变量总是设置为
Nothing,所以可以用来检测对象变量是否指到有效的对象。
  例如:
    If Not MyObject Is Nothing Then
     ' 变量引用有效的对象。
         .. .
    End If

  另外可以同时使用 New 关键字和 Set 语句来声明对象变量,并赋值一对象给它。
  例如:Set objDic = New Dictionary   ' 创建并赋值对象字典。


  额外知识点:
Me关键字。有兴趣的童鞋可以查查帮助。



excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-12-15 08:58 | 显示全部楼层
回复

使用道具 举报

发表于 2014-5-7 15:19 | 显示全部楼层
回复

使用道具 举报

发表于 2014-5-7 16:34 | 显示全部楼层
{:1112:}
回复

使用道具 举报

发表于 2014-6-16 14:10 | 显示全部楼层
不是很懂
回复

使用道具 举报

发表于 2014-6-16 23:59 | 显示全部楼层
  设置一个对象变量等于 Nothing,会中断此对象变量与任何特定对象的关联,如此可预防因意外的改变变量而更改对象。
  一般会用代码过程结束前用这个来实现对对象变量的善后工作。
  另外可以同时使用 New 关键字和 Set 语句来声明对象变量,并赋值一对象给它。
  例如:Set objDic = New Dictionary   ' 创建并赋值对象字典。
谢谢分享,标记,三十
回复

使用道具 举报

发表于 2014-6-17 17:17 | 显示全部楼层
回复

使用道具 举报

发表于 2014-6-18 10:03 | 显示全部楼层
回复

使用道具 举报

发表于 2016-1-3 12:25 | 显示全部楼层
ME的意义:应用于类模块中,指定代码所在的地方。
反正不是很懂。暂时还想不到它的作用,以后再说罢。

如下截取自那么的帅-----
Me 关键字像是隐含声明的变量。这个关键字适用于类模块中的每个过程。当类有多个实例时,Me 在代码正在执行的地方提供引用具体实例的方法。要把当前执行类实例的有关信息传递到另一个模块的过程,Me 非常有用。
例如,假定模块中有以下过程:
Sub ChangeFormColor(FormName As Form)
    FormName.BackColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
End Sub
可以调用这个过程并使用下列语句将窗体类的当前实例作为参数传递。
ChangeFormColor Me
回复

使用道具 举报

发表于 2020-6-1 11:04 | 显示全部楼层
学习了 谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-16 13:00 , Processed in 0.155239 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表