- 系统环境:Windows 10
- Excel:2010版本
综合之前的三篇,在一个小示例中应用三大对象,三大结构
Part 1:示例介绍
- 假设工作表“举例”,A列有一组数据,1-10,如果A列某行数字小于5,请在B列同一行写上"小于5",如果A列数字大于5,则在C列同行写上“大于5”,如果A列所在行等于5,则在D列同行写上“等于5”,如图1所示
图1 示例
Part 2:基础知识
- 说一下Sub/End Sub,VBA中的代码一般是放在Sub...End sub 之间,一件事的完成,可以分成几个部分或者只有1个部分,每个部分都可以用一个Sub...End sub表示
- VBA 要求代码闭合,例如IF...END IF,For...Next,以及Sub...End sub
- 含有VBA代码的Excel文件要求另存为启动宏的工作簿*.xlsm格式,如图2所示
- VBA不要求显式定义变量,就是不要求先定义变量,就可以直接使用
- 对于某个默认关键字不熟悉,鼠标选中,按下F1键,会出现对应帮助文件
- VBA代码行句首为Rem (Rem空格)或者单引号,表示该行其后内容为注释
图2 另存为.xlsm格式
xlsm文件:打开目标文件夹test.xlsx,另存为test.xlsm,选择菜单,开发工具-Visual Basic-插入-模块(输入VBA代码)
Part 3:逻辑
- 给定一个大范围循环(1-1000);
- 如果对应行不是空,则判断与5之间的大小关系;
- 根据与5对比结果,分别在B/C/D列写入信息
Part 4:代码
Sub test()
Set sht = ThisWorkbook.Worksheets("举例")
For i = 1 To 1000 Step 1
If sht.Cells(i, "A") <> "" Then
If sht.Cells(i, "A") < 5 Then
sht.Cells(i, "B") = "小于5"
ElseIf sht.Cells(i, "A") > 5 Then
sht.Cells(i, "C") = "大于5"
Else
sht.Cells(i, "D") = "等于5"
End If
Else
Exit For
End If
Next i
End Sub
图3 代码截图
代码写完后,点击工具栏中的运行按钮即可,如图4所示。返回工作表,发现问题已经解决
图4 运行代码
以上,为本次的介绍内容,下回见。
本文首发于微信公众号:Excel高效办公之VBA。排版和细节略作修改,发于头条