检查线程注释

时间:2019-01-23 17:05:44

标签: excel vba

我的办公室刚刚升级到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

1 个答案:

答案 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