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操作步骤
在 Excel 里拖选要加批注的格子(比如 B2:B20)。 按 Alt+F11 打开 VBA 编辑器,点"插入 → 模块",把上面代码粘贴进去。 回到 Excel,先按 Ctrl+S 把文件保存成 .xlsm 格式。 按 Alt+F8,选"给选中区域加同一条批注",点"运行"。 把鼠标移到任意选中的格子上,就能看到"请复核此数据"的小纸条。
案例二(中等):自己输入内容再加批注
功能说明 弹出一个输入框,你输什么,选中的格子就贴什么。比如你想写"这个数和上月对不上",运行时打进去就行,比固定文字更灵活。
代码(可直接复制运行)
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操作步骤
同上把代码粘进模块,保存为 .xlsm。 拖选目标区域后按 Alt+F8 运行"自选内容加批注"。 在弹窗里输入提醒文字,点确定,选中的格子就都贴上了。 想改内容只管再跑一次,已有批注的格子会自动跳过,不会重复叠加。
案例三(实用小案例):给空白单元格自动加"待填写"提醒
功能说明 做台账时常有漏填的格子。这个案例会自动扫描 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操作步骤
把代码粘进模块,保存为 .xlsm。 确认要检查的数据在 A 列、第一行是表头。 按 Alt+F8 运行"给空白单元格加待填提醒"。 有漏填的格子右上角都会出现小红三角,鼠标移上去显示"待填写",补完数据后把批注删掉即可(下一篇会教批量清除)。
知识点小结
给单元格加评论说明,核心方法是 单元格.AddComment "文字",这是微软官方与主流教程都确认的标准写法。加完批注后,格子右上角出现小红三角,鼠标移上去才显示,不占表格空间。 一个格子已有批注时再 AddComment会报错,所以用If 单元格.Comment Is Nothing Then先判断,没有才加,反复运行更安全。用 Selection可以处理"鼠标拖选"的区域;用Cells(行, 列)加循环可以批量处理某一列,两者都很适合零基础日常使用。
往期精选
Excel VBA编程-一键把整本工作簿导出成一个 PDF(所有表合一) Excel VBA编程-一键批量保护所有工作表(统一加密码) Excel VBA编程-一键批量冻结所有工作表的首行 Excel VBA编程-一键冻结首行 Excel VBA编程-一键删除表格里的空行和空列
其他信息
作者:西哥的AI幻觉 本套教程面向零基础办公人员,每篇只讲一个知识点,代码均可直接复制运行。 重要提醒:包含宏的文件请保存为"Excel 启用宏的工作簿(.xlsm)",.xlsx 格式会丢失代码。 下一篇预告:Excel VBA编程-一键批量清除批注(删除多余评论)















































































