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) '插入批注
Next
NextDay:
Next
NextOperator:
Next
End Sub
追答在外面办事,回来聊