VBA基础 - 数据类型

概要

学习一种新语言, 数据类型和关键字是第一步.

数据类型

常用的数据类型如下:

类型存储空间范围
Boolean2 bytesTrue 或者 False
Byte1 byte0 ~ 255
Integer2 bytes-32768 ~ 32768
Long4 bytes-2147483648 ~ 2147483647
LongLong8 bytes-2147483648 ~ 2147483647
String10 bytes + string length0 ~ 20 亿个字符
Object4 bytes可以赋值给任何对象引用
Single4 bytes-3.402823E38 ~ -1.401298E-45 (对负值)
1.401298E-45 ~ 3.402823E38 (对正值)
Double8 bytes-1.79769313486231E308 ~ -4.94065645841247E-324 (对负值)
4.94065645841247E-324 ~ 1.79769313486231E308 (对负值)
Date8 bytes100 年 1 月 1 日 ~ 9999 年 12 月 31 日 0:00:00 ~ 23:59:59
Variant16 bytes任意值, 性能较低

VBA 中提供了一系列 函数用于类型之间的转换

运算符

运算符是和数据类型同样, 是使用最多的部分.

类型运算符说明示例
算术运算符*乘法MyValue = 2 * 2 ' Returns 4.
^乘方MyValue = 2 ^ 2 ' Returns 4.
/除法运算, 返回浮点型结果MyValue = 10 / 4 ' Returns 2.5.
\除法运算, 返回整数结果MyValue = 100 \ 3 ' Returns 33.
Mod求余数MyResult = 10 Mod 3 ' Returns 1.
+加法MyNumber = 2 + 2 ' Returns 4.
-减法MyResult = 4 - 2 ' Returns 2.
比较运算符=判断是否相等Check = (4 = 4) ' Returns True
Is判断 2 个对象的引用是否相同Set ThisObject = MyObject
MyCheck = ThisObject Is ThisObject ' Returns True.
Like比较字符串时, 可以使用通配符, 简化版的正则MyCheck = "aBBBa" Like "a*a" ' Returns True.
连接运算符&连接字符串MyStr = "Hello" & " World" ' Returns "Hello World".
+除了作为加法, 还可以用在字符串上Var1 = "34": Var2 = 6; MyNumber = Var1 + Var2 ' Returns 40.
Var1 = "34": Var2 = "6"; MyNumber = Var1 + Var2 ' Returns "346".
逻辑运算符And逻辑与
Eqv逻辑等于
Imp不太常用imp-operator
Not逻辑非
Or逻辑或
Xor逻辑异或

变量

有了数据类型, 就可以定义各种变量, 完成相应的计算. 变量的定义和计算, 和其他编程语言也没有什么区别, 这里主要提下变量的生命周期.

全局变量和局部变量

 1  Dim globalX As Integer
 2
 3  Sub Test()
 4      f1
 5      globalX = globalX + 1
 6      localX = localX + 1
 7      f1
 8  End Sub
 9
10  Function f1()
11      Dim localX As Integer
12
13      Debug.Print "全局变量  " & globalX
14      Debug.Print "局部变量  " & localX
15  End Function

运行 Test, 输出:

   全局变量  0
   局部变量  0
   全局变量  1
   局部变量  0

静态变量和动态变量

 1  Sub Test()
 2      f1
 3      f1
 4      f1
 5  End Sub
 6
 7  Function f1()
 8      Dim dX As Integer
 9      Static sX As Integer
10
11      sX = sX + 1
12      dX = dX + 1
13      Debug.Print "静态变量  " & sX
14      Debug.Print "动态变量  " & dX
15  End Function

运行 Test, 输出:

   静态变量  1
   动态变量  1
   静态变量  2
   动态变量  1
   静态变量  3
   动态变量  1

转载于:https://www.cnblogs.com/wang_yb/p/11597902.html