Excel-VBA学习

581 阅读4分钟

这是我的第一篇掘金博客,开启掘金写作之路。

推荐学习视频:www.bilibili.com/video/BV13v…

如果有任何地方不是很清晰并且有小错误,麻烦各位在评论区留言,一起学习😀

录制宏初步认识(视频P1-9)

注意:

1.宏的使用无法撤销
2.如果想创建一个应用于所有文档的公共的宏使用————个人宏工作簿(会有personal xlsb!【这个前缀】);若只是应用于某个特定的文档,则使用保存于当前的宏工作簿或者新工作簿。

使用相对引用录制宏,(区别于录制宏)可多次连续执行image.png

编写VBA代码-包括基本语法(视频10-45)

1.需要熟悉VBA的开发环境VBE

image.png

2.编写VBA第一个代码

  • VBE不区分大小写
  • 一定要用英文的标点符号来进行编写
  • 定义宏:Sub Hello()[Sub和名字之间一定要有一个空格,’英文的单引号为注释]
  • Range表示单元格 (Range("B2").value ——表示单元格B2的值)

3.变量->P13-18

  • 变量命名规范:英文字母、数字、_ 进行命名【1.要见名知意(非常容易理解) 2.英文字母打头,紧接着结合数字、_ 来命名】

数据类型:

image.pngSingle/Double:小数类型 示例:image.png

  1. 不同类型的数据变量P14

image.png如果显示的结果是11/20,而不是1988-11-20则去修改一下本机的日期短格式即可(视频中有提及具体的修改操作)

  • 多变量声明例:Dim Price As Double, Birthday As Date
  1. Variant可变数据类型 image.png
  • 建议编程时不用还是用As+数据类型进行规范的代码编写,因为可能会浪费内存空间。
  1. Option Explicit(强制变量声明)
  2. 变量的生命周期(变量的生命周期范围:只能在子程序的范围内-局部变量

image.png全局变量

  • 如果要在不同模块中变量都能共用,则将全局变量的Dim换成Public,即Public Price As Double

4.修饰符,运算符和命名规范->P19-24

  • 我们可以用 & 符号进行文本的连接 e.g MsgBox “您已经运行了:”& Count & “次”
  1. Static修饰符:作用于变量,占据内存空间(所以在一个Sub运行完之外,还能被无限调用——类似全局变量) e.g Static Count As Integer
  • Static的生命周期会超出Sub子程序的范围,那么释放方法:关掉工作簿即可
  1. 常量Const PI As Double=3.14 (定义常量的时候就要进行赋值) 即把Dim换成Const,Dim用于变量,Const用于常量【VBA中有许多内置的常量,举一个🌰如下图:】

image.png

  • 可在立即窗口中,使用 ?+查询对象 的方式,看到其值
  1. 数学运算符&比较运算符&逻辑运算符

数学运算符:

image.png

比较运算符:

image.png

逻辑运算符: image.png

5.控制语句->P25-32

1.If结构

image.png

image.png

2.选择结构

  • Select Case 结构(类似 switch case)

image.png

3.循环结构

①ForNext循环结构——较常用(类似For循环)

image.png

  • step的应用场景

image.png

  • Exit For 类似于 break(VBA中没有类似continue)

image.png

②DoWhile / DoUntil 循环结构——较常用(类似While循环)

  • DoWhile image.png

  • DoUntil(与DoWhile刚好是相反的情况) image.png

6.函数&数组->P33-39

  • 子过程

无参子过程

image.png

有参子过程 image.png

  • 注:录制宏的方式是无参数子过程的方式,主要的函数一般都是默认无参子函数;有参子函数需要自己声明,写出来哈哈哈~
  • 函数
  • 函数与子过程的区别在于:函数有返回值,而子过程没有。

编写自定义的函数

image.png

  • 自定义函数的调用可以下面两种情况 image.png
  • 数组

一维数组

  • 注意:这里的下标是自己定义的,如果定义的起始不是0To几,那么就按定义的起始值为下标(比如:1 To 2,就以1位下标) image.png

如果是Dim MyArray(3) As Integer —— 这种写法,那么默认下标从0开始,即MyArray[0],MyArray[1],MyArray[2],MyArray[3]。

  • 如果在开头,如下图设置了Option Base那么就从你定义的Base几为初始下标

image.png

二维数组 image.png 遍历数组总结(一维和二维):

image.png

动态数组 image.png

7.其他内容->P40-45

  • 面向对象

image.png

代码举例: image.png

  • 对象层级框架

image.png

image.png

单元格的引用

image.png 引用多行和列

image.png

  • Cells和Offset属性 使用Cells的原因是在于:方便使用数字进行单元格的控制 image.png

Cells(8,2):最顶部的左边;Cells(13,5):最底部右边

  • End属性

image.png

  • Select和Activate方法

image.png select即选中一块区域,而Activate即选中某个单元格作为活动单元格

注:使用Tab键可以补全代码~

感谢您观看到最后,所有内容完结撒花✨~