Автоматический запуск макроса при изменении CommentThreaded? - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть столбец, чьи ячейки имеют комментарии через CommentsThreaded и CommentThreaded объектов. В другом столбце я успешно скопировал содержимое этих потоков, используя функцию =GetComments(A1), как показано ниже:

' Returns the concatenated string of parent and child comments for the specified input cell.
Function GetComments(SelectedCell As Range) As String
    Set CellComment = SelectedCell.CommentThreaded
    Dim Result As String
    If Not CellComment Is Nothing Then
        Result = CellComment.Author.Name & ": """ & CellComment.Text & """ " & vbNewLine & vbNewLine
        Dim ChildCount As Integer
        ChildCount = 1
        For Each ChildComment In CellComment.Replies
            Result = Result & "[Reply #" & ChildCount & "] " & ChildComment.Author.Name & ": """ & ChildComment.Text & """ " & vbNewLine & vbNewLine
            ChildCount = ChildCount + 1
        Next
    Else
        Result = "No Comments"
    End If
    GetComments = Result
End Function

Пример вывода будет: John Doe: "My comment"

Однако я ' мы заметили, что при добавлении / редактировании / удалении комментария выходная ячейка, использующая функцию GetComments, не обновляется. Мне нужно вручную перезапустить функцию в выходной ячейке, чтобы обновить ее содержимое, выбрав ее и нажав Enter .

Я пробовал использовать все типичные обработчики событий, такие как Worksheet.Change, SelectionChange, et c. Ни одно из событий не срабатывает при изменении комментария. Также не выполняется принудительное ручное принудительное выполнение Volatile или Calculate. Это похоже на то, что методы добавления / удаления / редактирования CommentsThreaded вообще не включены в события рабочей книги.

Возможно ли это? Спасибо!

1 Ответ

1 голос
/ 28 апреля 2020

Может быть, одно из этих решений поможет вам? (Они не идеальны: /) superuser.com/questions/1261444/custom-formula-not-updating

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...