Excel VBA基础语法——变量(三)

        任何语言(汉语、英语)都得遵守一定的规则,机器语言也不例外,Excel VBA编程语言也要遵守相关的语法规则,否则的话你编写的代码计算机是无法识别和执行的。本节开始学习Excel VBA编程语言的语法规则,虽然很枯燥无味但又是必须要克服的难题,过不了这一关就无法入门。

        VBA的数据类型(数据存储器数据存放类型)

        Excel 使用过程中,往往会出现不同类型的数值,如:整数、小数、货币型、日期型、字符串、布尔型等,为了存储不同类型的数据,VBA中也有不同类型的存储器来存放相应类型的数据,VBA中数据类型如下表所示:

数据类型 存储空间(字节) 范围描述
byte 1 保存0-255的整数
boolean 2 保存逻辑判断结果:TRUE或FALSE
integer 2 保存-32786—32786的整数
long 4 保存±2147483648之间的整数
single  4 保存正负小数
double 4 保存正负范围更大的小数
currency 8 保存正负范围内小数
decimal 16 保存正负范围更广的小数
date  8

保存日期和时间

日期范围:100年1月1日-9999年12月31日

时间范围:0:00:00-23:59:59

string(变长) 10字节加字符串长度 0-20亿个字符
string(定长) 字符串长度 1-65400个字符
object 4 对象变量,用来引用对象
variant   除了定长string数据及用户自定义类型外,可包含任何种类数据。
用户自定义   每个元素范围与本身数据类型范围相同

        数据存储器(数据存放容器)

        常量和变量是VBA存储器的两种数据存储容器。常量和变量最大的不同之处在于,变量可以更换内容,重复使用,常量不可以。由于变量可以更换内容,重复使用,通常用来存储程序运行过程中需要临时保存的数据或是对象。

        使用变量

        使用变量前首先要声明变量。声明变量就是指定变量的名称和存储的数据类型。语法规程如下所示:

        dim 变量名  as  数据类型            '明一个数据类型为xx的变量

        public  变量名 as  数据类型         '明一个数据类型为xx的公共变量

        private  变量名 as  数据类型       '明一个数据类型为xx的私有变量

        static  变量名 as  数据类型         '明一个数据类型为xx的静态变量

        上述四种声明变量的方法,除了变量的作用域不同外,其他都是相同的。

        示例:

        dim  str  as  string          ‘声明一个数据类型为string的str变量    这是一个变长的string类型

        dim  str  as  string*10    ‘声明一个数据类型为string的str变量    这是一个定长的string类型,最大存储10个字符

        dim str as string,int  as  integer  ‘不同变量用逗号隔开

        dim str                            ‘只声明变量名不指定类型默认为variant类型  

        variant 类型称为变体型,它可以根据存储的数据类型改变自己的类型与之匹配,相当于万能型的变量variant类型比其他数据类型占用更大的存储空间,编写代码时,除非必须使用,否则应该避免声明variant变量类型。一般在模块的第一行输入代码:option explicit 强制声明所有变量。

        变量的作用域

        变量的作用域决定了变量的使用区域,VBA中变量有3种不同级别的作用域,如下所示:

作用域 说明
单个过程 在一个过程中使用dim或是static语句声明变量,作用域为本过程,这样的变量为本地变量
单个模块 在模块的第一个过程之前使用dim或是private语句声明变量,作用域为变量所在的模块。这样的模块为模块级变量
所有模块 在一个模块的一个过程之前使用public语句声明变量,作用域为所有模块。这样的变量称为公共变量。

        变量赋值

        把数据存储到变量里,称为变量的赋值。变量赋值语句如下:

        变量名 = 数据   ‘把等号右边的数据赋值给左边的变量

        如1:sub mysub()

               dim str  as string

               str = “一起学习VBA”

               range(“a1”).value = str

               end sub

        如2:

               sub mysub()

               dim rng  as range    ‘声明rng为range的对象变量’

               set rng = worksheets(“sheet2”).range("a1")       ‘给变量赋值’

               rng.value = “你好”              ‘将文本写入变量指代的单元格,rng变量为 worksheets(“sheet2”).range("a1")   引用的单元格

               end sub

         上例2中介绍了给对象(object型,如单元格)赋值,语句为:

         set   变量名   =   对象

        使用常量

        常量通常用来存储一些固定的、不会被修改的值,如:圆周率、税率等。常量也需要声明,且还要赋值。语法如下:

        const   变量名  as    数据类型    =    数值

        如:const  pi as  single  =  3.14

        常量的作用域

        在过程中间使用const声明的常量,只能在该过程里使用;如果在模块的第一个过程之前const声明常量,该模块的所有过程都可以使用;如果想让声明的常量在所有模块中使用,应在模块的一个过程之前使用public语句声明,如:public pi  as  single = 3.14。

你可能感兴趣的:(Excel VBA基础语法——变量(三))