Я получил помощь от сообщества, чтобы выяснить этот код. Однако я продолжаю вести себя странно.
У меня есть только три функции для заметок: добавить заметку с форматированием, отформатировать заметку и отформатировать все заметки. AddServiceNote и FormatNote работают. Тем не менее, я получаю две разные ошибки при попытке запустить FormatNotes. На некоторое время код перестал работать, и я получил сообщение об ошибке (я думаю, 91). Я сделал некоторые тестовые изменения, а затем изменил его обратно на исходный код, но теперь код делает что-то другое (возможно, я на самом деле не возвращал код в исходное состояние). Он форматирует все заметки, но размещает их в соответствии с одной ячейкой, а не с родительской ячейкой каждого комментария.
Public Note As Comment
Public Sub AddServiceNote()
If ActiveCell.Comment Is Nothing Then
Set Note = ActiveCell.AddComment
Note.Text "Function: "
OrganizeElements Note
End If
End Sub
Public Sub FormatNote()
If Not ActiveCell.Comment Is Nothing Then
Set Note = ActiveCell.Comment
OrganizeElements Note
End If
End Sub
Public Sub FormatNotes()
For Each Note In ActiveSheet.Comments
OrganizeElements Note
Next
End Sub
Public Sub OrganizeElements(ByVal Note As Comment)
Note.Shape.Top = ActiveCell.Comment.Parent.Top - 10
Note.Shape.Left = ActiveCell.Comment.Parent.Offset(0, 1).Left + 10
Note.Shape.Placement = 3
'And a continuing list of formats that work
End Sub
В OrganizeElements у меня работает около 30 строк кода. Все они работают, когда я запускаю AddServiceNote и FormatNote. Когда я запускаю FormatNotes, первые две строки не работают:
Note.Shape.Top = ActiveCell.Comment.Parent.Top - 10
Note.Shape.Left = ActiveCell.Comment.Parent.Offset(0, 1).Left + 10
Эти строки должны располагать комментарий на основе ячейки, к которой он подключен. Я думаю, что ActiveCell может быть проблемой. Ни одна из других строк форматирования кода не имеет ActiveCell и, кажется, не работает с каждой заметкой. Код работает, когда я работаю с одной заметкой, но когда я пытаюсь отформатировать все заметки, ActiveCell, кажется, ссылается на фактическую выделенную ячейку в электронной таблице и не изменяется.
Как получить код для отформатировать каждый комментарий на основе родительской ячейки?