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

一篇我们讲了如何引用对象,主要是通过从对象集合中进行引用,今天我们讲讲如何使用对象变量来引用对象。
  什么是对象变量呢?
  前面已经有过讲变量了,通俗的说,就是变量的类型是对象类型,象单元格,工作表,工作簿这些。
声明对象变量
  和前面提过的变量声明基本上差不多,不过在as type的时候一定要指定一个对象类型。
  这个对象变量的类型必须是Variant,Object或一个对象的指定类型。
   '声明 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 对象。
  声明指定的对象类型可以提供自动的类型检查,更快的代码,并增加可读性。
  当我们在对象变量名称后输入.后时会有自动成员列表。(这在声明为Object或Variant时可享受不到这项待遇的)
赋值对象给对象变量
  使用 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关键字。有兴趣的童鞋可以查查帮助。
(0)

相关推荐

  • PHP面向对象(1)

    面向对象的基本概念 今天这里学的准确的来说就是面向对象汇总的OOP(面向对象编程).这是面向对象的一部分. 实际应用中面向对象包括 面向对象分析OOA 面向对象设计OOD 面向对象编程OOP 今天就讲 ...

  • 【烟花原创】VBA零基础之第28篇 对象(三)

    上一篇讲到了对象,在VBA中,还有一个非常重要的概念:集合Collections 集合是一个包含一组类型相同的对象集.另外,其实集合自身也是一个对象. 下面列出一有些经常使用到的集合对象: 工作簿集合 ...

  • 【烟花原创】VBA零基础之第29篇 对象(四)

    引用对象是非常重要的,因为在代码里访问对象时必须指明需要操作的对象. 例如在日常中我们找某人的,肯定会喊某人的名字(不认识的可以喊美女帅哥),人家才会理你. 可在VBA代码中,你必须实打实的指明某个特 ...

  • 【烟花原创】VBA零基础之第27篇 对象(二)

    上一篇我们讲到Excel自身就是一个对象,应用程序(Application)是这个对象层次中的最顶层,下面列出了在Application对象中一些经常使用到的对象: 引用Addin 窗口Window ...

  • 【烟花原创】VBA零基础之第26篇 对象(一)

    对象,这词大家再熟悉不过了,此对象非彼对象. 对象代表应用程序中的元素. 例如在Excel中,我们用到的单元格,工作表,工作簿,图表,数据透视表等等都是对象. 引用JAVA<编程思想>里面 ...

  • 【烟花原创】VBA零基础之第12篇 常量

    上一篇讲了变量,这一讲咱们聊聊常量(也有MS管叫常数). 一.什么是常量     常量就是程序在运行时保持一个固定的值的命名项目.     常量可以是字符串,数值,另一常量,或者任何(除Is之外) 算 ...

  • 【烟花原创】VBA零基础之第19篇 Goto语句

    通过Goto语句,可以无条件地转移到过程中的指定的行,从而实现不同程序段间作流程控制. 语法: GoTo Line Line:必要参数,line可以是过程内任意的行号或行标签. 什么是行号? 用来识别 ...

  • 【烟花原创】VBA零基础之第18篇 Do…Loop循环 (二)

    上一篇讲的是当使用 While 关键字去检查 Do...Loop 语句中的条件时,有两种方法. 可以在进入循环之前检查条件,也可以在循环至少运行一次之后才检查条件. 今天要讲的是在Do-Loop循环中 ...

  • 【烟花原创】VBA零基础之第17篇 Do…Loop循环 (一)

    上一篇聊过了以指定次数执行语句的For Next循环,但是当我们不知道循环具体会运行多少次,但能通过某种条件的变化来实现控制循环的开始和结束,这便是今天咱们要聊聊的的Do-Loop循环. 一.当条件为 ...

  • 【烟花原创】VBA零基础之第15篇 Select Case 语句

    上一篇的咱们聊了IF-Then-Else语句,在块形式的IF判断中,如果条件比较多,IF-Then-Else 语句会计算每个Elseif 语句的表达式,另外当条件多时,Elseif对于代码的可读性大打 ...