У меня есть столбец, чьи ячейки имеют комментарии через 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
вообще не включены в события рабочей книги.
Возможно ли это? Спасибо!