通过 VBA 向 Excel 单元格添加动态注释

通过 VBA 向 Excel 单元格添加动态注释

我正在尝试使用注释通过 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

我非常清楚,这可能是草率的代码,但我才刚刚开始。

到目前为止,该解决方案对于单个单元格来说效果很好。我预先将单元格命名为“目标”和“源”,而不是使用单元格引用(例如“B12”)。现在我想将其扩展到多个单元格,具体取决于我预先选择的范围(例如 A1:A6)。

添加注释的选择位置将对应于不同工作表中大小相同的范围。

我觉得循环会有所帮助,但我不知道从哪里开始。

下面的图片可能说明了我想要做的事情。源中充满了动态日期,我想将其添加到我的评论中

https://i.stack.imgur.com/EsfEa.jpg

提前致谢

答案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

在此处输入图片描述

相关内容