vba 常量与变量

常量
  常量为变量的一种特例,用Const定义,且定义时赋值,程序中不能改变该值,作用域也如同变量作用域。如下定义:Const Pi=3.1415926 as single
 
变量
(1)变量是用于临时保存数值的地方。VBA允许使用未定义的变量,默认类型是变体变量 Variant
(2)在模块通用说明部分,加入Option Explicit语句可以强迫用户进行变量定义

 

此时若不声明变量就使用会报错,变量未定义 

 

在工具->选项中可以设置是否要求变量申明,设置后会自动在模块通用说明部分加入Option Explicit

 

 

 
(3)变量数据类型
下表列出了VBA支持的数据类型,还列出了各种类型的变量所需要的存储空间和能够存储的数值范围。
此外用户还可以根据以下类型用Type自定义数据类型。
 数据类型 存储空间  数值范围 
 Byte(位) 1字节  0-255 
 Boolean(布尔型) 2字节  True或者False 
 Integer(整型) 2字节  -32,768 ~ 32,767 
 Long(长整型) 4字节  -2,147,483,648 ~2,147,483,647 
 Single
(单精度浮点数,类似于C语言的float)
 4字节
负值范围:-3.402823E38 ~ -1.401298E-45
正值范围:1.401298E-45 ~ 3.402823E38
 Double
(双精度浮点型)
8字节 
 负值范围:-1.79769313486232E308 ~ -4.94065645841247E-324
正值范围:4.94065645841247E-324 ~ 1.79769313486232E308
 Currency
(货币类型)
 8字节   -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807
 Decimal
(精准型)
14字节   不包括小数时:
-79,228,162,514,264,337,593,543,950,335 ~ +79,228,162,514,264,337,593,543,950,335 
包括小数时:
-7.9228162514264337593543950335 ~ 
+7.9228162514264337593543950335
 Date 8字节  1000年1月1日 ~ 9999年12月31日
 Object 4字节  任何引用对象 
 String(长字符串) 10字节+1字节/字符  0 ~ 约20亿 
 String(固定长度)  字符串的长度 1 ~约65400 
 Varient(数字) 16字节  double范围内的任何数值 
 Varient(文本) 22字节+1字节/字符  数据范围和变长字符串相同 
注: Currency是vb独有的一种数据类型,他用来进行货币的换算和定点计算特别方便(他的精度是确定的,不会出现精度带来的舍入误差)。
decimal与single和double的区别是,前者不是浮点数据类型,他的精度是确定的。因为使用的内存空间极大,他可以将精度控制得很准确(比后两者更准确),但因此牺牲了其性能,在有精度要求(无法容忍精度带来的舍入误差,比如财务计算)的情况下建议使用decimal。
 
Varient是变体型,可以是任意类型,可变。
 
 
(4)变量定义语句及变量作用域
 
一般变量作用域的原则是,在哪部分定义就在哪部分起作用,模块中定义则在该模块起作用。
在 Dim 语句中不必提供数据类型.如果没有数据类型,变量将被定义为 Variant 类型,因为VBA 中默认的数据类型是 Variant。你知道这一点后,最初的反应也许是觉得应该不用自己决定数据类型,而将一切抛给VBA.这种观念是完全错误的。你必须决定选择使用何种数据类型。因为Variant数据类型占用存储空间较大(16或22字节)而且它将影响程序的性能。VBA必须辨别Variant类型的变量中存储了何种类型的数据。
 
 
 
 
 
(5)变量赋值
 赋值语句是进行对变量或对象属性赋值的语句,采用赋值号 =,如X=123:Form1.caption=”
我的窗口”
对对象的赋值采用:set myobject=object 或  myobject:=object
 
 

对象可以用Set 设置为对象变量,如 Set MySheet = Workbooks(1).Sheets(1) 

 
一般变量直接赋值即可,但如果变量是对象,则需要使用Set语句
Set的作用是设定变量的值

Set可以用来定义变量,也可以用来将变量设置为特定的值。此外,它还支持一些特殊关键字来定义变量的值。

Dim i As Integer '使用Dim语句定义变量
Set i = 10 '使用Set语句将变量i的值设置为10

使用End关键字结束Set语句,如 End Set
使用Set语句还可以将现有的变量设置为另一个变量的值。如:
Set a = b

另外,Set还支持一些特殊关键字,可以用来定义变量的值。
例如:可以使用ccur关键字来定义变量值为当前日期和时间,例如:
Set MyVariable = Ccur.

https://wenku.baidu.com/view/533c6bbb132de2bd960590c69ec3d5bbfd0ada31.html?_wkts_=1678439292893&bdQuery=vba+set+%E7%94%A8%E6%B3%95

 
 
 
posted @ 2023-03-06 17:31  绮丽梦境  阅读(124)  评论(0编辑  收藏  举报