在之前的两篇教程中,简单介绍了 VBA 中变量的声明和赋值以及基本语句。变量的声明和赋值,通常是一个 VBA 过程的开始,也是最基本的部分。VBA 开发过程中,好的声明方式和正确的赋值过程,是写出准确又高效代码的根本。 本篇教程给大家介绍什么是 VBA 中的声明以及基本语法,然后介绍多个数据类型的赋值方法。学习完本篇,可以开始尝试写一些基本的 VBA 代码了。 什么是声明变量在《VBA 变量》一文中介绍,变量是一个存储数据的 VBA 代码结构。在代码中,通过变量名获取变量所代表的的值。而声明变量,就是告诉 VBA,变量的名字和它所存储的值的数据类型。 VBA 中声明变量,有 4 种变量,它们是:
声明语句的基本语法4 种类型的变量的声明方法基本一致。他们的语法如下。 1.基本类型变量'语法 2.通用变量声明 Variant 类型变量时,如果忽略数据类型,默认情况是 Variant 类型,因此下方两种方式是相同的。 '语法 3.数组'语法 关于数组的声明和赋值,将在数组一章中做详细的介绍。 4.对象声明对象时,一般有两种方式。一种是前期绑定,即一开始就指定对象的类型;一种是后期绑定,即声明时不指定对象类型,后期指定。 '语法 关于对象的声明和赋值,在对象一章中做更详细的介绍。 在哪里写声明语句声明变量,意思是在使用变量前,告诉 VBA,变量的名字和数据类型。因此,声明变量的语句,必须写在使用它的语句前。 错误写法如果先于声明语句前使用变量,VBA 会报「变量未定义」错误。 正确写法Dim name As String 如何声明多个同类型变量通过以上部分的学习,在写多个同类型变量的声明语句时,有人可能会按以下方式写: '声明两个整数类型的 i、j 变量 首先,以上写法,语法上没问题,不会出现错误。但是,这种方式声明变量,Integer 类型只作为第二个 j 变量的数据类型。第一个变量,即 i 变量,它的数据类型时 Variant,并不是 Integer 类型。 因此,VBA 中不能合并声明语句。正确的声明方法如下: '第一种,按两行写 声明变量是必须的吗准确来讲,VBA 中声明变量不是必须的。也就是说,没有声明变量,而直接开始用,也没有错误。 但是,不声明变量,是一种不好的习惯,也常常会带来很多错误。这也是为什么之前的教程中都没有提到这点的原因。 不声明变量典型弊端包括:
基于以上原因,强烈建议,每次使用变量,都要声明其变量名和数据类型。 VBA 提供一个选项,可以强制变量声明,即在模块头部写上以下语句: Option Explicit 模块中有以上语句时,如果未声明变量而直接使用变量,VBA 会提示「变量未定义」错误,方便检查代码。 设置 VBA 编辑器变量声明选项时,可以自动为每个模块插入 基本类型变量的赋值基本类型变量是存储单个值的变量,例如数字、文本、日期等。 VBA 中,给基本类型变量赋值,以 在实际开发中,给基本类型变量赋值时, 给基本类型变量赋值语法如下: '语法,两种写法相同 赋值语句中, Dim birthday As Date 一种特殊情况是, Dim i As Integer Variant 类型变量的赋值我们知道 Variant 类型时通用类型,因此赋值很直接,没有类型强制要求。Variant 类型变量第一次赋值后,可以继续赋值其他类型数据。 '声明变量(两者相同) 这里依然强调,虽然 Variant 类型变量比较灵活,但是也有很多弊端,所以在实际开发中,不建议使用该类型,使用确切类型变量。 数组类型变量的赋值数组是可以存储多个同类型元素的数据类型。声明时一般指定其数据长度。给数组赋值时,一般使用每个元素的序号。 数组赋值基本语法如下: [数组名](元素序号) = [数据] 下面看一下实际的实例。 '声明数组 以上是数组的基本赋值方式,关于数组的更多声明和赋值方法,将在《数组》一章中详细介绍。 对象类型变量的赋值VBA 中,对象是程序的一个元素,不同于基本类型数据,它包括多个属性和多个方法。例如,Excel 中工作簿、工作表、单元格、图表等都是对象。 对象类型变量赋值时,不同于基本类型变量使用 如下是对象类型变量基本的赋值方法: Set [变量名] = [对象类型数据] 下面看一下实际的用法。 '声明工作表类型的对象 由于对象可以包含多个属性,因此 VBA 提供一种同时给多个属性赋值的简单方法。具体方法是对象多个属性赋值语句,放置在 Dim sheet As Worksheet 关于对象的更多声明和赋值方法,将在《对象》一章中详细介绍。 总结以上是 VBA 中最基本的变量声明和赋值方法。声明和赋值变量,是代码的开始部分,需要熟练掌握。 不同类型变量,声明和赋值方法做了简单的介绍,除了以上介绍的,不同类型的变量有自己特点,这些部分会在以后的教程详细介绍。 关于变量声明和赋值,还有几个比较重要的知识点,包括相关错误和局部、全局变量,这部分内容将会做单独的、详细的介绍。 大家如果有问题,欢迎留言或私信,大家一起交流探讨。 |
|
来自: L罗乐 > 《VBA基础入门教程》