今日代码
vbaDim x As Integer
Dim name As String练习题
- 整理第1阶段学到的知识点,绘制思维导图
- 编写一个综合程序,包含变量、条件、循环、函数
- 为你的宏添加错误处理
参考解答
1. 第1阶段主要包含:变量与数据类型、条件语句(If...Then...Else、Select Case)、循环结构(For...Next、Do...Loop)、过程与函数(Sub、Function)、对象模型入门(Range、Worksheet、Workbook)、错误处理(On Error)、调试技巧(断点、监视窗口)。 2. 综合程序示例:计算学生成绩等级、批量处理表格数据等。 3. 使用 On Error GoTo 标签和 Resume 语句捕获运行时错误。
第一阶段回顾
已学知识点
- VBA基础概念与开发环境
- 变量与数据类型
- 条件语句(If、Select Case)
- 循环结构(For、Do While)
- 过程与函数
- 对象模型入门
- 错误处理
- 调试技巧
这 8 天构成一条完整的 VBA 入门学习路线:先搭环境跑通 Hello World(Day01),再掌握变量、条件、循环、过程四块积木(Day02-Day05),最后学会操作 Excel 对象(Day06)、兜住运行时错误(Day07),并用断点调试自查代码(Day08)。验证掌握程度可以直接运行 bas 文件里的 知识自测 小程序。
常用代码片段
变量声明
vbaDim x As Integer
Dim name As String条件判断
vbaIf 条件 Then
' 代码
End If循环
vbaFor i = 1 To 10
' 代码
Next i单元格操作
vbaRange("A1").Value = "Hello"
Cells(1, 1).Value = "Hello"实战场景
写一个迷你计算器作为阶段收官:InputBox 输入、Select Case 分支、On Error 兜底,第一阶段三大主题各就各位。
vbaSub 迷你计算器()
Dim num1 As Double, num2 As Double
Dim result As Double, op As String
num1 = InputBox("请输入第一个数字:")
op = InputBox("请输入运算符(+,-,*,/):")
num2 = InputBox("请输入第二个数字:")
On Error GoTo ErrorHandler
Select Case op
Case "+": result = num1 + num2
Case "-": result = num1 - num2
Case "*": result = num1 * num2
Case "/": result = num1 / num2
Case Else
MsgBox "无效的运算符", vbExclamation
Exit Sub
End Select
MsgBox num1 & " " & op & " " & num2 & " = " & result
Exit Sub
ErrorHandler:
MsgBox "计算错误: " & Err.Description, vbCritical
End Sub输入 10 和 0 做除法会触发除零错误,被 ErrorHandler 接住并提示——这正是 Day07 错误处理在真实程序里的样子。完整版见 bas 文件。
自我检测
- 能独立编写简单VBA程序
- 理解对象、属性、方法的概念
- 能进行基本的错误处理
- 会使用调试工具
下阶段预告
第2阶段将学习Excel核心应用,包括工作簿/表操作、单元格操作、用户窗体等。
自我检测解答
- 能独立编写简单VBA程序 - 建议完成课后练习巩固基础
- 理解对象、属性、方法的概念 - 理解Excel对象模型层次结构
- 能进行基本的错误处理 - 掌握On Error语句的使用方法
- 会使用调试工具 - 熟练使用F8逐语句调试和监视变量
常见错误与排查
Run-time error '13': Type mismatch——InputBox 点取消返回空串,赋给 Double 报错,先判断If str = "" Then Exit Sub。Run-time error '11': Division by zero——除数为 0,计算前检查。Run-time error '424': Object required——对象赋值漏了Set。- 按 F5 没反应——光标不在任何 Sub 内,或宏安全设置禁用了宏,检查"宏设置"后重开文件。
Compile error: Expected: end of statement——从网页复制代码带入了中文引号,VBA 只认英文双引号。
延伸练习
- 给迷你计算器增加取余(Mod)和乘方(^),并用
IsNumeric校验输入。 - 写一个阶段自测程序:数组存 5 道题和答案,循环出题判分,MsgBox 报得分(参考 bas 的
知识自测)。 - 综合项目:给 Day09 的价格清单生成器加上输入校验和错误处理,存成个人模板。
由在线工具箱(www.vba.net)整理制作