如果符合条件,我会尝试在范围内的特定单元格中添加注释。所以我在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
答案 0 :(得分:1)
如果已对单元格发表评论,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的评论,你可能希望“累积”评论。我的假设是你运行了一次代码,然后再次运行它并点击错误,因为第一次运行创建了注释。根据您尝试实现的目标,您可能希望系统地清除U行中从第2行到最后一行(循环外)的注释,并删除循环中的.ClearComments
,以便开始清理每个时间。这是最简单的情况。如果它更复杂的话,我会让你弄清楚细节。