excel工作表与VBA代码:
VBA代码的编写环境叫做VBE
英语:visual basic environment
从excel工作表切换到VBE中,快捷键是:alt+F11
含有宏程序的excel文件不能用后缀名为xlsx保存,必须用xlsm的后缀名保存。
带有宏程序的文件,初次打开会提示用户是否启用(编辑)功能。
用户也可以在<开发工具>中的<宏>功能,去重新启用宏功能。
录制宏:打开<开发工具>选项卡<录制宏>功能,在弹出的对话框中输入宏的名称,说明,执行时的快捷键,宏程序的保存位置。在编辑工作表结束后,再次点击<停止录制>。把录制宏应用到其他工作表中,只需要按下刚才设置的快捷键。
使用相对引用来录制宏:打开<开发工具>,点击<使用相对引用>,然后点击<录制宏>。相对引用可以让我们从同一个工作表中多次执行相同步骤的操作。将自定义的操作应用到不同的行或列,比如可以很方便的隔行去应用自己设置的样式。
英文状态下的单引号表示注释的符号,绿色文字部分表示注释。
要学会查看VBA代码,如图:
接下来,学习通过表单控件运行宏。
在<开发工具>中的<插入>中的<表单控件>,选择一个按钮。在弹出的对话框中选择要执行的宏。
移动按钮:右键一下,然后按住左键拖动。
注意:宏操作是不能撤回的,不可以按ctrl+z撤回。
通过快速访问工具栏运行宏:
首先在excel选项后台中,点击<快速访问工具栏>,把宏添加进去,设置好图标。
保存宏到个人工作簿:
如果01工作簿中没有宏,02工作簿中有宏,01的工作表想要应用02中的宏,就需要打开02工作簿。
如果把录制的宏保存到个人宏工作簿中,01中的工作表再想应用宏,就不用打开02了。
个人宏工作簿,excel默认保存的文件名为 personal.xlsb ,个人宏工作簿默认是隐藏的,必要时需要用<视图>下的<取消隐藏>让他显示出来。
个人宏工作簿是专门用来保存宏程序的文件,宏程序保存到个人宏工作簿之后,其他的工作簿文件是默认可以调用的。
VBA代码编辑:
插入模块,就是插入相应的宏代码。如图:
右键,可以移除VBA代码模块,可以导出到其他位置,可以导入。
编写一个简单的VBA代码:
第二个:
VBA程序的变量类型:
VBA程序的执行方式:
一个模块中允许有多个sub子程序。
光标定位到第一个sub子程序中,然后点击运行,就会执行第一个。
光标定位到第二个sub子程序中,点击运行按钮就会执行第二个。
也可以打开<视图>中的<立即窗口>,在立即窗口中用命令<call 子程序名>运行。
VBA程序中多个变量的定义:
variant可变数据类型:
强制变量声明:
变量的生命周期:也就是不同的变量定义方式,他的作用范围不同。如图:
如果编写的VBA代码中有循环执行的结构,如果需要重置,让程序重新从0开始,要点击VBE界面左上角的<重新设置>。
static变量:
由关键字static定义的变量,在子程序中执行完一次后并不会失效,他会循环执行下去。
常量的定义:
使用关键字:const 定义,常量的生命周期与变量相同,如果只在子程序sub内定义,则他的作用范围就是子程序内部。如果想让同一个模块内的所有子程序都可以使用定义的常量,就需要把定义写在子程序外部。如果想让同一工作簿下的所有模块都可以使用定义的常量,则需要加上关键字:public
ActiveCell :活动单元格
Interior.color:内部颜色常量
vbRed:红色
?vbRed:通过立即窗口查询Red代码数字。
数学运算符:
比较运算符:
逻辑运算符:and or not
VBA命名规范:
if选择结构:
select选择结构:
for next循环结构:
step关键字的使用:
如何中断for循环:
嵌套for循环:
do while循环结构:
do until循环结构:
无参数的子程序:
有参数的子程序:
通过参数调用,实现不改变原代码的情况下,进行求值。
用户自定义函数:
可以直接在单元格中进行调用,也可以在<函数>中找到函数分类中的<自定义函数>
一维数组:
第一种定义方式:
第二种定义方式:
如果没有声明option base = 1 ,则表示数组下标从0开始。
二维数组:
动态数组:
VBA面向对象:
对象的层级架构:
根据对象的层级架构给单元格赋值:
单元格的引用:
单元格引用之cells属性:
cells(2,3)表示第2行,第3列数据。
offset属性:
offset(2,3)表示距离某个单元格的偏移量。
select方法/activate方法:
range的end属性: