学习一种新语言, 数据类型和关键字是第一步.编程
经常使用的数据类型以下:编程语言
类型 | 存储空间 | 范围 |
---|---|---|
Boolean | 2 bytes | True 或者 False |
Byte | 1 byte | 0 ~ 255 |
Integer | 2 bytes | -32768 ~ 32768 |
Long | 4 bytes | -2147483648 ~ 2147483647 |
LongLong | 8 bytes | -2147483648 ~ 2147483647 |
String | 10 bytes + string length | 0 ~ 20 亿个字符 |
Object | 4 bytes | 能够赋值给任何对象引用 |
Single | 4 bytes | -3.402823E38 ~ -1.401298E-45 (对负值) |
1.401298E-45 ~ 3.402823E38 (对正值) | ||
Double | 8 bytes | -1.79769313486231E308 ~ -4.94065645841247E-324 (对负值) |
4.94065645841247E-324 ~ 1.79769313486231E308 (对负值) | ||
Date | 8 bytes | 100 年 1 月 1 日 ~ 9999 年 12 月 31 日 0:00:00 ~ 23:59:59 |
Variant | 16 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, 输出:code
全局变量 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