今日代码

vba
Dim x As Integer Dim name As String

练习题

  1. 整理第1阶段学到的知识点,绘制思维导图
  2. 编写一个综合程序,包含变量、条件、循环、函数
  3. 为你的宏添加错误处理

参考解答

1. 第1阶段主要包含:变量与数据类型、条件语句(If...Then...Else、Select Case)、循环结构(For...Next、Do...Loop)、过程与函数(Sub、Function)、对象模型入门(Range、Worksheet、Workbook)、错误处理(On Error)、调试技巧(断点、监视窗口)。 2. 综合程序示例:计算学生成绩等级、批量处理表格数据等。 3. 使用 On Error GoTo 标签和 Resume 语句捕获运行时错误。

第一阶段回顾

已学知识点

  1. VBA基础概念与开发环境
  2. 变量与数据类型
  3. 条件语句(If、Select Case)
  4. 循环结构(For、Do While)
  5. 过程与函数
  6. 对象模型入门
  7. 错误处理
  8. 调试技巧

这 8 天构成一条完整的 VBA 入门学习路线:先搭环境跑通 Hello World(Day01),再掌握变量、条件、循环、过程四块积木(Day02-Day05),最后学会操作 Excel 对象(Day06)、兜住运行时错误(Day07),并用断点调试自查代码(Day08)。验证掌握程度可以直接运行 bas 文件里的 知识自测 小程序。

常用代码片段

变量声明

vba
Dim x As Integer Dim name As String

条件判断

vba
If 条件 Then ' 代码 End If

循环

vba
For i = 1 To 10 ' 代码 Next i

单元格操作

vba
Range("A1").Value = "Hello" Cells(1, 1).Value = "Hello"

实战场景

写一个迷你计算器作为阶段收官:InputBox 输入、Select Case 分支、On Error 兜底,第一阶段三大主题各就各位。

vba
Sub 迷你计算器() 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核心应用,包括工作簿/表操作、单元格操作、用户窗体等。

自我检测解答

  1. 能独立编写简单VBA程序 - 建议完成课后练习巩固基础
  2. 理解对象、属性、方法的概念 - 理解Excel对象模型层次结构
  3. 能进行基本的错误处理 - 掌握On Error语句的使用方法
  4. 会使用调试工具 - 熟练使用F8逐语句调试和监视变量

常见错误与排查

  1. Run-time error '13': Type mismatch——InputBox 点取消返回空串,赋给 Double 报错,先判断 If str = "" Then Exit Sub。
  2. Run-time error '11': Division by zero——除数为 0,计算前检查。
  3. Run-time error '424': Object required——对象赋值漏了 Set。
  4. 按 F5 没反应——光标不在任何 Sub 内,或宏安全设置禁用了宏,检查"宏设置"后重开文件。
  5. Compile error: Expected: end of statement——从网页复制代码带入了中文引号,VBA 只认英文双引号。

延伸练习

  1. 给迷你计算器增加取余(Mod)和乘方(^),并用 IsNumeric 校验输入。
  2. 写一个阶段自测程序:数组存 5 道题和答案,循环出题判分,MsgBox 报得分(参考 bas 的 知识自测)。
  3. 综合项目:给 Day09 的价格清单生成器加上输入校验和错误处理,存成个人模板。

由在线工具箱(www.vba.net)整理制作