- 学习笔记
不同类型的代码需要写在不同的地方

什么是宏:
宏是一种功能非常强大的文本展开工具;
在excel中的宏没有那么复杂,它就是一段用VBA编写的小程序













强制声明机制





for循环

逆序的循环:step=-1


if语句


尽量还是写在不同行,使结构更清晰

嵌套的if语句:

多个分支结构:



如何debug:
设置断点:鼠标点击这行代码的左侧,然后这行代码的左侧会出现小圆点,此时点运行程序后,程序运行完这行代码后会停止。
单步执行:键盘上的F8键
添加监视:依次点击:调试->添加监视->表达式,然后输入想要监视的变量

关于字符串:
1.用双引号括起来(没有双引号会被认为是变量名)
2.字符串中可以包括各种特殊字符(如空格)
3.字符串中可以包含多个字符、1个字符、甚至0个字符
4.大写字母和小写字母是不一样的字符
5.由数字字符构成的字符串并不是数字

因为在VBA中,变量名加&有特殊含义
录制宏
当我们想用vba代码自动的操作excel中的某种元素时,比如插入一个饼图,那么我们只需要知道饼图在VBA中是用哪一种变量名代表的,它有哪些属性和方法,然后去调用它就行。

当我们希望用VBA代码自动执行一段操作的时候,我们可以先自己手工地执行一遍操作,这时让excel把我们手工的操作记录下来,然后它会把这些动作翻译成VBA代码写在VBE编辑器中
while语句




多重嵌套循环:

如何注释:rem加上空格再加注释语句

为了方便,rem可以用单引号代替

类与对象
对象:系统中每一个具体的事物
类:对象的分类,同类对象特征相同
属性:是什么样子?
方法:能做什么?

微软已经替我们写好了类、属性、方法,excel中的类很多,记住其中几个主要的类就好了


如何自动添加新的工作表:
worksheets的Add方法:在所属工作簿中新建一张工作表

用多重循环解决多表汇总问题:

用worksheets引用工作表的两种形式:
根据工作表的显示位置:WorkSheets(5)
根据工作表的名称:WorkSheets(“赵六”)
Sub allScore()
Dim i,k
Dim wPerson, wAll As Worksheet
Set wAll = Worksheets(“总分榜”)
k=2
For i = 1 To Worksheets.Count
Set wPerson = Worksheets(i)
if wPerson.names <> “总分榜” Then
wAll.Cells(i, 1) = wPerson.Cells(1, 2)
wAll.Cells(i, 2) = wPerson.Cells(2, 3)
k=k+1
End If
Next i
End Sub
这节课讲的将工作表分别汇总,再登记到一张新的工作表里的操作在日常生活中非常常见,因此需要多熟悉,记牢,做到自己能够编写程序。
模块化程序涉及(使用过程)
使用过程的优点:
- 代码清晰,易于维护
- 灵活拓展,轻松修改
- 代码重复使用,提高效率

调用过程时,可以省略关键字Call,直接写过程名.