Excel批量产生批注 的VBA代码

作者:佚名    更新日期:2025-06-19
先选中区域,再执行以下代码:

Sub Add_Comment()
For Each cel In Selection
If Not cel.Comment Is Nothing Then cel.Comment.Delete
cel.AddComment
cel.Comment.Text Text:="20100621:" & cel.Value
Next
End Sub

for i=6 to 15
Range("B" & i).AddComment
Range("B" & i).Comment.Text Text:="20100621:" & Cells(i, 2).Value
next i

这个简单!!
你直接应用excel的录制宏,然后你手动完成一个。然后可以查看宏代码!根据宏代码修改成你需要的,就ok了

高分求助,通过VBA编程批量生成批注的代码~

Sub 批注()
For i = 1 To 3
For ii = 1 To 3
With Cells(i, ii)
If Not .Comment Is Nothing Then .Comment.Delete
.AddComment
.Comment.Text Text:=Cells(i, ii + 3).Text
End With
Next ii
Next i
End Sub

Sub InsertCommentByDetail() '打开Excel文件,按Alt+F11打开VBA编辑器,“插入”->“模块”,然后把这些代码贴到空白的窗口里 '保持光标停留在这些代码中间,按F5运行 Dim MyComment As String '批注内容 Dim DetailSheet As Worksheet '明细表 Dim TotalSheet As Worksheet '汇总表 Dim Operator As String, OperatDate As String '操作人、操作日期 Dim RT As Long, RD As Long, CT As Long '汇总表行号、列号,明细表行号 Set TotalSheet = Sheets("汇总表") '汇总表的名字改成你的 Set DetailSheet = Sheets("明细表") '明细表的名字改成你的 For RT = 2 To TotalSheet.UsedRange.Rows.Count Operator = TotalSheet.Cells(RT, 1).Text '获取 汇总表 的 操作人 For CT = 3 To 31 '按每月31天循环 OperatDate = TotalSheet.Cells(1, CT).Text '获取 汇总表 的 操作日期 If CDate(OperatDate) = 0 Then GoTo NextOperator '如果 操作日期 不是有效的,直接看 汇总表 的 下一行 If TotalSheet.Cells(CT, CT).Text = "" Then GoTo NextDay '如果 操作日期 没有数据,看 汇总表 的 下一天 MyComment = "" '批注清空 For RD = 2 To DetailSheet.UsedRange.Rows.Count '循环查找 明细表 的每一行 '如果 操作日期 和 操作人 和汇总表的一致,加入到批注里 If DetailSheet.Cells(RD, 20).Text = Operator And DetailSheet.Cells(RD, 19).Text = OperatDate Then MyComment = MyComment & DetailSheet.Cells(RD, 1).Text & vbTab '批注加上 指令单号 MyComment = MyComment & DetailSheet.Cells(RD, 8).Text & vbTab '批注加上 成品规格 MyComment = MyComment & DetailSheet.Cells(RD, 3).Text & vbCr '批注加上 原料重量 End If TotalSheet.Cells(RT, CT).AddComment Left(MyComment, Len(MyComment) - 1) '插入批注 NextNextDay: NextNextOperator: NextEnd Sub