Добавить динамические комментарии к ячейкам Excel через VBA

Я пытаюсь использовать комментарии, чтобы показать текущую дату выполнения задачи с помощью макроса VBA. Мое текущее решение выглядит так:

Sub AddDueDates()
Dim strPrefix As String
  strPrefix = ""
  With Range("Target")
If .Comment Is Nothing Then
   .AddComment
End If
.Comment.Visible = True
.Comment.Shape.TextFrame.AutoSize = True
  End With

 With Range("Target").Comment
.Text strPrefix & Range("Source").Text 
End With
End Sub

Я ужасно осознаю, что это скорее всего неаккуратный код, но я только начинаю снова.

Решение до сих пор отлично работает для одной ячейки. Я назвал ячейки "Target" и "Source" заранее, вместо того, чтобы использовать ссылки на ячейки, такие как "B12". Теперь я хочу расширить это до нескольких ячеек, в зависимости от диапазона, который я выбираю заранее (например, A1:A6).

Выбор, куда будут добавляться комментарии, будет соответствовать диапазону одинакового размера на другом листе.

Я чувствую, что петля будет полезна, но я не знаю, с чего начать.

Картинка ниже может проиллюстрировать, что я хочу сделать. Источник заполнен динамическими датами, которые я хочу добавить в мои комментарии.

заранее спасибо

1 ответ

Это должно начать вас. Это работает с вашей пробной фотографией, но потребуется настройка, если источник комментариев - это другой лист.

Sub AddDates()
Dim targetRng As Range, commentSrcRng As Range
Dim strPrefix As String ' why this variable? You never seem to use it

Set targetRng = Application.InputBox("Please select the target range.  This is the range that will have comments added to each cell", Type:=8)
Set commentSrcRng = targetRng.Offset(0, 3) ' from the screenshot. Will have to tweak if this is a different worksheet.

Dim cel As Range
Dim i As Long
i = 1
For Each cel In targetRng
    If cel.Comment Is Nothing Then
        cel.AddComment
    End If
    cel.Comment.Visible = True
    cel.Comment.Shape.TextFrame.AutoSize = True
    cel.Comment.Text strPrefix & commentSrcRng.Cells(i)
    i = i + 1
Next cel

End Sub

/images/0110cd4ed3c373d2bdcc0f8d8f1b3f69768eb994.g if

Другие вопросы по тегам