常量与变量
变量,似一个容器,可以更换里面的东西;常量,是什么就是什么,换不了
变量的使用
-
声明变量,即指定变量的名称和数据类型
Dim variableName As TypeOfData '变量名还以驼峰命名法来吧 Dim Str As String '声明变长字符串类型 Dim Str As String*10 '声明定长字符串类型 Dim str As String, nu As Integer '声明多个变量 Dim Str '未指定变量类型,则默认为Variant类型
Public variableName As TypeOfData '公共变量, Private variableName As TypeOfData '私有变量 Static variableName As TypeOfData '静态变量
不同的声明语句只会影响其变量的作用域
-
变量的赋值
'文本、数值、日期等数据型变量赋值 Let variableName = Data 'Let可省略 '为对象变量赋值(Object型,如单元格) Set variableName = Data 'Set不可省略
-
强制声明所有变量
个人理解,VBA应该为强类型语言,所有的变量都必须先定义后使用
Option Explicit '在模块的第一句前输入,若执行的程序存在未声明变量,则无法执行
-
变量的作用域
变量的作用域决定变量可以在哪个模块或过程中使用。VBA中变量有三种不同级别的作用域
-
单个过程
在一过程中使用Dim或Static语句声明的变量,其作用域为本过程,即只有本过程可以使用。此类变量称为本地变量
-
单个模块
在模块的第一个过程之前使用Dim或Private声明的变量,作用域为该语句所在模块的所有过程,即该模块内的所有过程都可使用。此类称为模块级变量
-
所有模块
在模块的第一个过程前(指的是模块对象,并非工作表、窗体等对象)使用Public声明的变量,作用域为所有模块,即所有模块内的过程都可以使用。此类称为公共变量
-
-
常量的使用
声明常量不但要指定常量的名称及数据类型,还要在声明的同时给常量赋值,并且赋值后的常量不能再重新赋值(和其他语言不太一样...)
Const variableName As typeOfData = Data
其作用域同变量
数据类型
数据类型 | 存储空间(字节) | 适用范围 |
---|---|---|
Byte | 1 | 0~255 |
Boolean | 2 | True或False |
Integer | 2 | -2768~32767 |
Long | 4 | 略 |
Single | 4 | 略 |
Double | 8 | ... |
Currency(货币型) | 8 | ... |
Decimal(小数型) | 14 | ... |
Date | 8 | ... |
数据类型 | 存储空间(字节) | 适用范围 |
---|---|---|
String | 字符串长度 | 1-65400字符 |
Object | 4 | 对象变量,引用对象 |
Variant(变体型) | ... | ... |