-
注释是用 单引号开头
‘
-
定义子程序
Sub 方法名字() ... end Sub
-
弹出提示框
MsgBox "xxxx" -
变量申明
Dim xxx As Interger ’可以一次申明多个变量 Dim var1 As String,var2 As Integer
-
如果不指定数据类型,就是自动类型(Variant),会自动变长,会不会自动变小?
Dim var2 var = 100
-
常量申明
Const var3 as Integer
-
vba里面的变量默认没申明也可以直接使用,可以指定为必须申明才能使用
‘下面这代码指定变量必须申明才能用 Option Explicit Sub 方法名字() ... Sub end
-
语句结束不需要分号
-
方法体不需要{}包裹
-
vba的数据类型
- Byte 1字节
- Boolean 2字节 ?还是1位?
- Integer 只有2 字节?
- Long ,只有4个字节,是java的 Long 的一半?
- Currency 8个字节 这个才是真的Long
- Single 4字节, 单精浮点数
- Double 8字节 双精浮点数
- Date ,需要写成 #01/30/2024# 格式
- String
-
vba的关键字,数据类型第一个字符都是大写,申明的变量和方法没有强制要求大写开头,为了区分可以建议小写开头
-
变量的三种生命周期,子程序内有效<模块内有效<全局有效
可以使用 Public xxx As type 生命变量跨模块有效。 -
Static 修饰子程序里面的变量,这样的变量在子程序执行完以后不会回收内存,效果类把变量定义在子程序外面,
Sub 方法名字() Static var1 As Integer End Sub
-
VBA 里面的运算符和access的类似,或者说因为使用VBA office 全套都是这用法
/
表示除,\
表示整除Mod
表示取余数,不等于用<>
,等于还是用的 = 不是==? -
VBA 的 逻辑运算符 And ,Or ,Not
isTure = (1>2) And (2>1) isTure = (1>2) Or (2>1) isTure = Not (2>1)
-
if 的写法
If var1 = 0 Then MsgBox "0" ElseIf var1 = 1 Then MsgBox "1" Else MsgBox "其他" End If
-
select case 类似 switch case
Dim var1 As Integer var1 = 3 Select Case var1 Case Is = "1" MsgBox "1" Case Is = "2" MsgBox "2" Case Else MsgBox "其他" End Select
-
for next 就是for循环
Sub m6() Dim var1 As Long var1 = 100 '前面的赋值会被1 覆盖 For var1 = 1 To 5 MsgBox var1 Next var1 End Sub