VBA -- 学习Day2
入门
格式:
Sub 第一个宏程序()
End Sub
其中 第一个宏程序 : 宏程序名称;Sub:子程序;End Sub:子程序结尾
注:1. sub 宏程序名称,按下Enter => 自动补全() ,Sub自动大写,自动补全End Sub
2. 光标放在待执行的宏程序内部再执行 就不用选 要执行的是哪个宏程序
3. 单个模块可以编写多个宏程序
4. 选中多行,设置注释块 => 即可设置多行注释
5. &表示连接字符串;Range 表示单元格,通过.Value 获取单元格对应的数值
缩进:
Tab键 缩进
Shift+Tab键 减少缩进
立即窗口:
位置:视图 => 立即窗口
Debug.Print 打印到立即窗口
在立即窗口中 call 宏程序名称 或 直接写宏程序名称 都可以运行宏程序
使用变量:
Dim 声明变量 As 明确数据类型
日期&字符串:
VBA中对于日期类型要使用#包裹起来
字符串类型使用" "包裹
常见数据类型:
Integer(数据范围:-32768~32767)
Long(数据范围:-2147483648~2147483647)
Double
Date
Boolean
String
类型转换:
隐式类型转换:如果存储的数据的类型和我们设置的变量的数据类型不一致,首先会尝试隐式类型转换,(它会转换成设置的变量的数据类型),然后把转换之后的结果存储到内存空间中;转换不成功,就会报错
变量默认值:
整数、小数两个类型,变量默认值:0
字符串类型,变量默认值:""
布尔类型,变量默认值:False
日期类型,变量默认值:0:00:00
强制变量声明:
变量在使用时一定要先声明,然后才能使用
要想让未声明的变量报错,并且定位,我们可以在最上方写入Option Explicit
多变量声明:
Dim Name As String
Dim Age As Integer
Dim HireDate As Date
Dim Score As Double
=> Dim Name As String,Age As Integer,HireDate As Date,Score As Double
可变数据类型:
当我们不指定一个变量的数据类型的时候,那他就相当于可变数据类型
如果不写任何的数据类型,那就相当于默认会加上As Variant
变量作用域:
1. 在一个子程序里,可以调用另一个子程序 => call 子程序名称
2. 过程级变量:子程序内使用Dim声明的变量,只在所在的子程序中有效;超出子程序范围,变量所占据的内存空间就会释放
模块级变量:子程序外使用Dim声明的变量,在模块内的所有的子程序中都有效;超出子程序范围,变量所占据的内存空间不会释放
公共级变量:Dim 改 Public ,在子程序外使用Public生命的变量,对所有项目的所有模块中的子程序都有效
静态变量:子程序内使用Static声明的变量,只在声明的子程序内有效;即使子程序执行完毕之后,变量占据的内存空间不会释放,特点是只在第一次赋值,后续调用时,保持之前的值;且一旦超出子程序范围,变量所占据的内存空间不会释放
常量:
不变的数值;用Const进行声明,声明时就要立刻进行赋值
变量定义方式:Dim PI As Double
PI = 3.1415926
常量定义方式:Const PI As Double = 3.1415926
注意:1. 如果想让当前模块所有子程序都能进行使用;就把这个常量放在子程序外部进行声明
如果想让其他模块子程序也能使用,就使用Public
2. 常量不允许修改值
VBA内置常量:
修改单元格的背景颜色
vbRed 255
vbBlue 16711680
vbGreen 65280
xlNone 无颜色
eg. Range("A5").Interior.Color = vbRed
换行
vbCrLf 、vbNewLine 换行
eg. Debug.Print "A5单元格的数据为:" & vbCrLf & Range("A5").Value
数学运算符:
= 赋值
+ - * /
\ 整除
Mod 取模:常使用Mod对2取模,获取余数,如果余数为0,则为偶数;否则,则为奇数
^ 乘幂 :用于计算一个数的平方
- 负号:eg. num1 = 2
num1 = -num1
Debug.Print num1
=> -2
比较运算符:
= 、<>不等于 、> 、< 、>=、 <=
字符串的模糊匹配:
like *:0或多个字符
?:一个字符
eg. Dim name As String
name = “张三”
Debug.Print name Like "张*" => True
逻辑运算符:
And(与)全部成立才成立
Or (或)有一个成立,才成立
Not (非)取反
连接运算符:
&:可以连接任何类型数据
+:只能连接字符串(当左右两侧都是数字时,表示加号)