У меня есть макрос, который просто вводит комментарий в ячейку. Связан с горячей клавишей, поскольку мы используем множество комментариев в конкретном файле группы.
Ожидаемый результат:
добавить комментарий, ввести дату
, если в ячейке уже есть комментарий - добавить новый комментарий выше (также с датой)
Проблема:
Макрос ниже делает все правильно, кроме sendkeys в самом конце. Если я ввожу комбинацию вручную: Ctrl+Home
, то End
я получаю именно там, где хочу в добавленном комментарии.
Для комментария, который пишет над существующим комментарием, я хочу быть точно в конце даты в верхней строке. На данный момент все работает нормально, кроме курсора, все еще заканчивающегося внизу
Вопрос:
Как заставить vba внутри комментария вести себя как ключи Ctrl+Home
, затем End
( tldr: Sendkeys в коде не работает внутри комментария)
Option Explicit
Sub RPF_Comment()
Dim datum As String, old As String
datum = Format(Now, "dd.mm.yyyy") & ": "
Application.DisplayCommentIndicator = xlCommentIndicatorOnly
On Error GoTo Commentexists
ActiveCell.AddComment ("")
ActiveCell.Comment.Visible = True
ActiveCell.Comment.Shape.Select
With Selection
.Font.Name = "Arial"
.Font.Size = 8
.Font.FontStyle = "Regular"
.Text = datum
End With
Exit Sub
Commentexists:
On Error GoTo out
ActiveCell.Comment.Visible = True
ActiveCell.Comment.Shape.Select
old = Selection.Text
With Selection
.Font.Name = "Arial"
.Font.Size = 8
.Font.FontStyle = "Regular"
.Text = datum & Chr(10) & Chr(10) & old
End With
SendKeys "^{HOME}"
SendKeys "{End}"
out:
End Sub
PS: я знаю, что ".select" не очень хорош. но на сабе это долго, 1 выбор в порядке:)