将注释添加到范围中的特定单元格。 Excel VBA

如果符合条件,我正在尝试将注释添加到某个范围内的特定单元格。 所以我在Sheet1中有一个信息所在的列表。 我也有sheet16的单元格值,我想在列U中的评论,所以它会说在行U的F6。

应用程序定义的或对象定义的错误

有什么想法吗?

提前致谢。

Sub Comments() Dim rcell As Range Sheet16.Range("C6:AR17").ClearComments For Each rcell In Sheet1.Range("A2:A" & Sheet1.Range("A" & Sheet1.Rows.CountLarge).End(xlUp).Row) If rcell.Offset(0, 1).Value(10) = Sheet7.Range("G1").Value(10) Then commentvalue = rcell.Offset(0, 4).Value Sheet16.Range("U" & rcell.Row).AddComment (commentvalue) End If Next rcell End Sub 

如果已经有一个单元格注释,则AddComment方法失败。 像这样做:

 Sub Comments() Dim rcell As Range Dim commentvalue As String Sheet16.Range("C6:AR17").ClearComments For Each rcell In Sheet1.Range("A2:A" & Sheet1.Range("A" & Sheet1.Rows.CountLarge).End(xlUp).row) If rcell.Offset(0, 1).Value = Sheet7.Range("G1").Value Then commentvalue = CStr(rcell.Offset(0, 4).Value) With Sheet16.Range("U" & rcell.row) .ClearComments '<=== :-) .AddComment commentvalue End With End If Next rcell End Sub 

编辑

根据@ Jeeped的评论,你可能想要“累积”评论。 我的假设是,你运行一次代码,然后再次运行,并出现错误,因为第一次运行创build了评论。 根据你试图达到的目的,你可能想要系统地清除列2中的行2到循环以外的最后一行的注释,并在循环中删除.ClearComments ,以便每次都开始清理。 这是最简单的情况。 如果它更复杂,我会让你弄清楚细节。