夜雨聆风学习资料网

ARTICLE · 1345085

Excel VBA编程-一键给单元格批量添加批注

Excel VBA编程-一键给单元格批量添加批注

一个常被忽略的小麻烦

财务小陈做完一张对账表,发给主管。主管看完在纸上写了满页意见,回头还得一条条口述给小陈改。后来小陈学聪明了——直接在 Excel 里给有疑问的格子"贴小纸条",主管打开文件,鼠标移上去就能看到提醒,不用再来回问。

这种"小纸条"在 Excel 里叫批注(新版也叫备注)。手动一个一个加太慢,今天我们用一行命令,把"加批注"变成一键批量操作。

今天的知识点

给单元格加批注,核心就一个方法:AddComment(添加评论)。它作用在"单元格对象"上,写法是:

单元格.AddComment "要写的提醒文字"

微软官方文档和 ExcelDemy、e-iceblue 等实战教程都确认,这是给单元格加评论说明的标准写法。加完之后,格子右上角会出现一个小红三角,鼠标移上去就能看到内容;平时不占地方,数据照常排列。

一个小提醒:如果一个格子已经有批注,再对它 AddComment 会报错。所以我们的代码里会先判断"这个格子有没有批注",没有才加,这样反复运行也不会出错。

【SVG 示意图】

案例一(简单):给选中区域一键加同一条批注

功能说明 先在 Excel 里用鼠标拖选一片区域,再运行本宏,选中的每个格子都会贴上同一条批注"请复核此数据"。适合给一整列待核对的数据统一做标记。

代码(可直接复制运行)

Sub 给选中区域加同一条批注()    Dim c As Range    ' 逐个格子处理选中的区域    For Each c In Selection        ' 先判断这个格子有没有批注,没有才加,避免重复运行报错        If c.Comment Is Nothing Then            c.AddComment "请复核此数据"        End If    Next c    MsgBox "已为选中区域加上批注。", vbInformationEnd Sub

操作步骤

  1. 在 Excel 里拖选要加批注的格子(比如 B2:B20)。
  2. 按 Alt+F11 打开 VBA 编辑器,点"插入 → 模块",把上面代码粘贴进去。
  3. 回到 Excel,先按 Ctrl+S 把文件保存成 .xlsm 格式。
  4. 按 Alt+F8,选"给选中区域加同一条批注",点"运行"。
  5. 把鼠标移到任意选中的格子上,就能看到"请复核此数据"的小纸条。

案例二(中等):自己输入内容再加批注

功能说明 弹出一个输入框,你输什么,选中的格子就贴什么。比如你想写"这个数和上月对不上",运行时打进去就行,比固定文字更灵活。

代码(可直接复制运行)

Sub 自选内容加批注()    Dim c As Range    Dim 内容 As String    ' 弹窗让你输入批注内容    内容 = InputBox("请输入要加的批注内容:", "加批注")    If 内容 = "" Then Exit Sub   ' 点了取消就直接退出    ' 给选中区域的每个格子加上你输入的内容    For Each c In Selection        If c.Comment Is Nothing Then            c.AddComment 内容        End If    Next c    MsgBox "批注已添加。", vbInformationEnd Sub

操作步骤

  1. 同上把代码粘进模块,保存为 .xlsm。
  2. 拖选目标区域后按 Alt+F8 运行"自选内容加批注"。
  3. 在弹窗里输入提醒文字,点确定,选中的格子就都贴上了。
  4. 想改内容只管再跑一次,已有批注的格子会自动跳过,不会重复叠加。

案例三(实用小案例):给空白单元格自动加"待填写"提醒

功能说明 做台账时常有漏填的格子。这个案例会自动扫描 A 列(从第 2 行开始,让开表头),凡是空白的格子,就贴上"待填写"批注,一眼就能看出哪里没填。

代码(可直接复制运行)

Sub 给空白单元格加待填提醒()    Dim 末行 As Long    Dim i As Long    ' 找到 A 列最后一行有内容的位置    末行 = Cells(Rows.Count, 1).End(xlUp).Row    ' 从第二行开始(第一行是表头),逐行检查    For i = 2 To 末行        If Cells(i, 1).Value = "" Then            ' 空白格子才加"待填写"提醒            If Cells(i, 1).Comment Is Nothing Then                Cells(i, 1).AddComment "待填写"            End If        End If    Next i    MsgBox "已为 A 列空白单元格加上「待填写」提醒。", vbInformationEnd Sub

操作步骤

  1. 把代码粘进模块,保存为 .xlsm。
  2. 确认要检查的数据在 A 列、第一行是表头。
  3. 按 Alt+F8 运行"给空白单元格加待填提醒"。
  4. 有漏填的格子右上角都会出现小红三角,鼠标移上去显示"待填写",补完数据后把批注删掉即可(下一篇会教批量清除)。

知识点小结

  1. 给单元格加评论说明,核心方法是 单元格.AddComment "文字",这是微软官方与主流教程都确认的标准写法。
  2. 加完批注后,格子右上角出现小红三角,鼠标移上去才显示,不占表格空间。
  3. 一个格子已有批注时再 AddComment 会报错,所以用 If 单元格.Comment Is Nothing Then 先判断,没有才加,反复运行更安全。
  4. 用 Selection 可以处理"鼠标拖选"的区域;用 Cells(行, 列) 加循环可以批量处理某一列,两者都很适合零基础日常使用。

往期精选

  • Excel VBA编程-一键把整本工作簿导出成一个 PDF(所有表合一)
  • Excel VBA编程-一键批量保护所有工作表(统一加密码)
  • Excel VBA编程-一键批量冻结所有工作表的首行
  • Excel VBA编程-一键冻结首行
  • Excel VBA编程-一键删除表格里的空行和空列

其他信息

  • 作者:西哥的AI幻觉
  • 本套教程面向零基础办公人员,每篇只讲一个知识点,代码均可直接复制运行。
  • 重要提醒:包含宏的文件请保存为"Excel 启用宏的工作簿(.xlsm)",.xlsx 格式会丢失代码。
  • 下一篇预告:Excel VBA编程-一键批量清除批注(删除多余评论)

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料