从选定范围创建评论

时间:2015-01-14 07:12:11

标签: excel vba excel-vba

我基本上想要一个宏将选择作为注释插入到选定范围。所以基本上我需要有两个选定的范围?这是如何运作的?

我的问题 - 我对行中不同表格中的单元格有所评论。在第二张表中,我有列标题,我需要将这些行作为要插入的注释。

Sub TextIntoComments_GetFromRight()
    Dim cell As Range
    Selection.ClearComments
    For Each cell In Intersect(Selection, ActiveSheet.UsedRange)
      If Trim(cell.Offset(0, 1).Text) <> "" Then
        cell.AddComment cell.Offset(0, 1).Text
        cell.Comment.Visible = False
        cell.Comment.Shape.TextFrame.AutoSize = True
      End If
    Next cell
End Sub

1 个答案:

答案 0 :(得分:1)

以下代码将接受来自用户的两个范围输入。一个用于需要注释的范围,一个用于注释范围。这两个范围必须相同。然后,它会将第二个范围中的文本作为注释添加到第一个范围。无论两个范围在哪个工作表上,这都将起作用。

Sub TextIntoComments_GetFromRight()
    Dim CommentRange    As Range
    Dim CellComments    As Range
    Dim cell            As Range
    Dim cell2           As Range
    Dim ws1 As Worksheet, ws2 As Worksheet

    Set CommentRange = Range("A1")
    Set CellComments = Range("A1:A2")
    Do Until CommentRange.Rows.Count = CellComments.Rows.Count And CommentRange.Columns.Count = CellComments.Columns.Count
        Set CommentRange = Application.InputBox("Select the range that needs comments.", Type:=8)
        Set CellComments = Application.InputBox("Select the range of comments to be inserted.", Type:=8)
        If CommentRange.Rows.Count <> CellComments.Rows.Count Or CommentRange.Columns.Count <> CellComments.Columns.Count Then MsgBox "The range sizes do not match. Please select matching range sizes.", vbCritical
    Loop

    Set ws1 = CommentRange.Worksheet
    Set ws2 = CellComments.Worksheet
    CommentRange.ClearComments
    For Each cell In CommentRange
        Set cell2 = ws2.Cells(CellComments.Row + (cell.Row - CommentRange.Row), CellComments.Column + (cell.Column - CommentRange.Column))
        If cell2.Text <> "" Then
            cell.AddComment cell2.Text
            cell.Comment.Visible = False
            cell.Comment.Shape.TextFrame.AutoSize = True
        End If
    Next cell
End Sub