我的办公室刚刚升级到Office 365的新版本,随之而来的是一种新的注释处理方式。旧的注释现在称为“注释”,新的注释现在称为“注释”。
在我的一本工作簿中,有一个按钮,当单击该按钮时,它将浏览某些单元格以检查是否有评论。然后,它将根据发现的颜色为单元格着色。
(我的按钮完整代码发布在下面) 第9行包含问题
在早期版本的Excel中,此按钮可以正常工作。但是,现在仅当单元格带有“注释”时才起作用,而如果它们具有“注释”则不起作用。在我的代码中,我一直使用的类称为“ Comment”,因此我的代码类似于“ If Cells(row,col).Comment Is Nothing ...”。此类仍有效,但仅查找注释。我浏览了对象库,并在隐藏的对象下找到了一个名为“ CommentThreaded”的新类。我尝试将代码更改为该代码(“如果Cells(row,col).CommentThreaded Nothing ...”),但它不起作用。单击按钮后,现在出现运行时错误:尝试访问此新类时出现应用程序定义或对象定义的错误。
有人知道我需要做些什么才能使我的按钮与主题注释一起使用吗?
谢谢, 迈克
Sub Comments()
Dim xrow As Integer
Dim xcol As Integer
For xrow = 7 To 88
For xcol = 3 To 15
If Cells(xrow, xcol).Value <= -0.1 Or Cells(xrow, xcol).Value >= 0.1 Then
If Cells(5, xcol).Value = "MTD %" Or Cells(5, xcol).Value = "YTD %" Then
If Not Cells(xrow, xcol).Comment Is Nothing Then
Cells(xrow, xcol).Interior.Color = RGB(155, 255, 188)
Else
Cells(xrow, xcol).Interior.Color = RGB(255, 255, 0)
End If
End If
End If
Next xcol
Next xrow
End Sub
答案 0 :(得分:0)
您已经发现,新对象CommentThreaded
隐藏在对象浏览器中(通过“显示隐藏的成员”可见)。
宏记录器已经可以工作了,因此您可以用它记录Range("A1").AddCommentThreaded ("test")
和其他操作,但是实际上,如果运行该原始记录的代码,则会出错。
实际上,在VBA中以编程方式获取它似乎还太新,但是在对象浏览器中已经可以看到它了,我想,您假设的If Range.CommentThreaded is Nothing
也应该是将来的切入点。
Range
的新功能:
Property CommentThreaded As CommentThreaded
Function AddCommentThreaded([Text]) As CommentThreaded
CommentThreaded
的属性:
Application As Application
Author As Author
Creator As XlCreator
Date As Variant
Parent As Object
Replies As CommentsThreaded
CommentThreaded
的方法:
Function AddReply([Text]) As CommentThreaded
Sub Delete()
Function Next() As CommentThreaded
Function Previous() As CommentThreaded
Function Text([Text], [Start], [Overwrite]) As String