Excel 编写一个VBA 宏程序吧
Excel 编写一个VBA 宏程序吧
在之前的课程中,我们讲了什么是宏,怎么录制宏,怎么使用宏。但在实际工作中,仅仅靠录制宏是不能完全解决问题的,比如逻辑关系,是不能通过录制来解决的。那么,就需要编写宏程序,来实现这一功能。
示例:
A列有20个数据,现在要做的是,每当单元格数据等于5,则把5变为10。
这个问题通过查找替换、if公式都可以实现。这里讲如何通过编写程序来实现,通过本节课程的学习,使大家有编程的概念,可以会自己建立程序。
在编写程序之前,需要先进行分析,理清逻辑关系:
1. 数据均在A列;
2. 有15个数据,从A1-A15单元格;
3. 单元格数据等于5,替换为10;
分析后,我们按照这个思路来进行操作。
步骤:
1. 打开VBA宏编写界面,在表格界面,按Alt+F11,打开窗格;
2. 点击上面"插入",点击"模块",即可开始编写程序;
3. 在左边"工程"栏目中,出现了"模块1",我们可以在此下面编写程序。
注意,模块里面的程序,可以控制表格中不同的sheet,在编写时,如果需要操作不同sheet的数据,需要注意切换,或加sheet的名称,后续会讲解。
4. 开始编写程序。
4.1 宏程序的结构为
Sub 名称()
(你编写的内容)
End Sub
以sub开始,名称可英文,可以中午,然后加括号(以下所有讲解,一般均使用英文状态的符号),编写结束后,以end sub结尾。
4.2 控制sheet里面的单元格的使用
Sheets("页面名称").Cells(*1,*2)
页面名称即sheet的名称,cells(*1,*2)代表单元格,*1代表行数号,*2代表列数号。比如B5单元格,为cells(5,2)
4.3 定义变量
在上面示例中,存在一个变量,即从A1单元格-A15单元格,变量为1~15,进行定义。变量名称可以随意起名,需要用英文。如
Dim i As Integer
Integer表示为整数型变量,i 表示变量名称。
4.4 for循环
上面示例中,需要对每一个单元格进行处理,所以需要for循环,结构为
For i=1 to ** step 1
(要处理的内容)
Next i
表示从1开始,到**结束,每次增加1,最后以next i结束。上面示例,**需要填写为15,表示里面的程序循环15次。
4.5 if判断
在上面示例中,需要进行判断,如果单元格值等于5,则该单元格等于10.
结构为
if 判断语句 then
(为真,要处理的内容)
Else
(为假,要处理的内容)
End if
4.6 添加注释
在每行程序之后,可以使用英文 " 来添加注释。
4.7 经过以上几个步骤,该程序已经基本完成,进行编写。
Sub 程序()
Dim i As Integer "定义i变量
For i = 1 To 15 Step 1 "for循环,从1到15,每次增加1
If Sheets("sheet1").Cells(i, 1) = 5 Then " 判断语句,判断单元格是否等于5
Sheets("sheet1").Cells(i, 1) = 10 "如果成立,则该单元格变为10
End If "无否定的处理,不用else,判断结束
Next i "for循环结束
End Sub
在上面图中,绿色部分表示注释,蓝色字体表示软件中已经自带的命令,定义变量时,要注意不能使用自带的命令。
4.8 开始执行宏程序
(一)可以点击上面的三角形
(二)在表格界面中,点击"视图","宏","查看宏",点击刚刚编写的程序,点击执行
(三) 添加一个形状,来控制宏。
"插入","形状",随意选择建立,右击该形状,点击"指定宏",选择刚刚编写的程序。
开始运行程序吧。
上面既是编写程序的示范,从分析,步骤,编写,运行,重要的是分析,理清逻辑关系,内容可以随意上网查,比如不会判断,可以搜索 "excel vba如何进行判断"。如果不会循环,搜索"Excel vba 如何进行循环"。重要的是有逻辑关系,会搜索,会学习。
课程到这里,小伙伴们,你学会了吗?