这是我的第一篇掘金博客,开启掘金写作之路。
推荐学习视频:www.bilibili.com/video/BV13v…
如果有任何地方不是很清晰并且有小错误,麻烦各位在评论区留言,一起学习😀
录制宏初步认识(视频P1-9)
注意:
1.宏的使用无法撤销
2.如果想创建一个应用于所有文档的公共的宏使用————个人宏工作簿(会有personal xlsb!【这个前缀】);若只是应用于某个特定的文档,则使用保存于当前的宏工作簿或者新工作簿。
使用相对引用录制宏,(区别于录制宏)可多次连续执行
编写VBA代码-包括基本语法(视频10-45)
1.需要熟悉VBA的开发环境VBE
2.编写VBA第一个代码
- VBE不区分大小写
- 一定要用英文的标点符号来进行编写
- 定义宏:Sub Hello()[Sub和名字之间一定要有一个空格,’英文的单引号为注释]
- Range表示单元格 (Range("B2").value ——表示单元格B2的值)
3.变量->P13-18
- 变量命名规范:英文字母、数字、_ 进行命名【1.要见名知意(非常容易理解) 2.英文字母打头,紧接着结合数字、_ 来命名】
数据类型:
Single/Double:小数类型 示例:
- 不同类型的数据变量P14:
如果显示的结果是11/20,而不是1988-11-20则去修改一下本机的日期短格式即可(视频中有提及具体的修改操作)
- 多变量声明例:Dim Price As Double, Birthday As Date
- Variant可变数据类型
- 建议编程时不用还是用As+数据类型进行规范的代码编写,因为可能会浪费内存空间。
- Option Explicit(强制变量声明)
- 变量的生命周期(变量的生命周期范围:只能在子程序的范围内-局部变量)
全局变量
- 如果要在不同模块中变量都能共用,则将全局变量的Dim换成Public,即Public Price As Double
4.修饰符,运算符和命名规范->P19-24
- 我们可以用 & 符号进行文本的连接 e.g MsgBox “您已经运行了:”& Count & “次”
- Static修饰符:作用于变量,占据内存空间(所以在一个Sub运行完之外,还能被无限调用——类似全局变量) e.g Static Count As Integer
- Static的生命周期会超出Sub子程序的范围,那么释放方法:关掉工作簿即可
- 常量:Const PI As Double=3.14 (定义常量的时候就要进行赋值) 即把Dim换成Const,Dim用于变量,Const用于常量【VBA中有许多内置的常量,举一个🌰如下图:】
- 可在立即窗口中,使用 ?+查询对象 的方式,看到其值
- 数学运算符&比较运算符&逻辑运算符:
数学运算符:
比较运算符:
逻辑运算符:
5.控制语句->P25-32
1.If结构
2.选择结构
- Select Case 结构(类似 switch case)
3.循环结构
①ForNext循环结构——较常用(类似For循环)
- step的应用场景
- Exit For 类似于 break(VBA中没有类似continue)
②DoWhile / DoUntil 循环结构——较常用(类似While循环)
DoWhile
DoUntil(与DoWhile刚好是相反的情况)
6.函数&数组->P33-39
- 子过程
无参子过程
有参子过程
- 注:录制宏的方式是无参数子过程的方式,主要的函数一般都是默认无参子函数;有参子函数需要自己声明,写出来哈哈哈~
- 函数
- 函数与子过程的区别在于:函数有返回值,而子过程没有。
编写自定义的函数
- 自定义函数的调用可以下面两种情况
- 数组
一维数组
- 注意:这里的下标是自己定义的,如果定义的起始不是0To几,那么就按定义的起始值为下标(比如:1 To 2,就以1位下标)
如果是Dim MyArray(3) As Integer —— 这种写法,那么默认下标从0开始,即MyArray[0],MyArray[1],MyArray[2],MyArray[3]。
- 如果在开头,如下图设置了Option Base那么就从你定义的Base几为初始下标
二维数组
遍历数组总结(一维和二维):
动态数组
7.其他内容->P40-45
- 面向对象
代码举例:
- 对象层级框架
单元格的引用
引用多行和列
- Cells和Offset属性
使用Cells的原因是在于:方便使用数字进行单元格的控制
Cells(8,2):最顶部的左边;Cells(13,5):最底部右边
- End属性
- Select和Activate方法
select即选中一块区域,而Activate即选中某个单元格作为活动单元格
注:使用Tab键可以补全代码~