EXCEL单元格批量插入不同批注

如图片所示,为2个工作表的截图,上图D列为一些名词,下图C列为名词的解释,现在想通过批量插入批注的方法,使得每次点上图D列单元格时出现对应的解释,如何办到?请牛人帮忙!!

Public Sub aaa()

'sheet2表内C列的内容,作为批注添加到sheet1表D列
'(sheet2表A列为sheet1表D列的列表)

Dim t As String
Dim s1 As Worksheet: Set s1 = Worksheets("sheet1")
'sheet1表,需要批注的表(必要时更改表名,""内的内容)
Dim s2 As Worksheet: Set s2 = Worksheets("sheet2")
'sheet2表,批注数据来源表(必要时更改表名,""内的内容)

Dim rn As Range
Dim rn2 As Range: Set rn2 = s2.Cells(2, 1).Resize(s2.[a65536].End(xlUp).Row - 1, 3)

For Each c In s1.Cells(2, 4).Resize(s1.[d65536].End(xlUp).Row - 1, 1)
t = c.Value
Set rn = rn2.Find(t, LookIn:=xlValues, LookAt:=xlWhole)
If rn Is Nothing Then
t = "没有找到"
Else
t = rn.Offset(0, 2).Value
End If
c.ClearComments
c.AddComment t
Next
End Sub
--------------------
sheet1表,需要批注的表,需要批注的列:D列,从第二格开始
sheet2表,批注数据来源表
sheet1表D列的来源为sheet2表的A列,批注来源为sheet2表的C列

打开sheet1表,在表名上点右键,选“查看代码”,打开代码窗口,将上面的代码复制入其中,并根据实际情况,将代码内的表名改为实际表名(有注释),然后,按 F5 键运行程序

有其他问题,Hi 我
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-18
Sub 批量增加批注()
On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息
Application.ScreenUpdating = False '关闭屏幕刷新
Application.Calculation = xlCalculationManual '手动重算
Dim i As Integer, j As Integer
For i = 2 To 30
For y = 4 To 7
With Cells(i, y)
.AddComment
.Comment.Visible = False
.Comment.Text Text:=Sheet2.Cells(i, y-3).Value
End With
Next
Next
iApplication.Calculation = xlCalculationAutomatic '自动重算
Application.ScreenUpdating = True '打开屏幕刷新
On Error GoTo 0 '恢复正常的错误提示
End Sub
第2个回答  2010-06-18
只能用VBA来实现,通过遍历D列的内容,再用AddComment并设置Comment属性把对应的说明写入。

你可以发EXCEL到[email protected],把问题说明清楚,我帮你看看。
第3个回答  2010-06-18
用VBA吧 或者直接 用 Vlookup 函数 将第二个工作表的对应内容 查询到第一张表的对应单元格后面去得了。
第4个回答  2010-06-18
这问题有创意,我也等着学习一下