通过宏

时间:2015-11-26 17:13:06

标签: excel vba excel-vba comments excel-2013

我正在尝试创建一个宏来加速我每天需要做的常见过程。在我使用的电子表格中,我们有时需要覆盖公式。为了帮助以后查看电子表格的其他人,我们复制原始公式并将其输入注释,然后突出显示黄色单元格。

(仅供参考 - 我无法从头开始编写VBA,但我通常可以使用录制宏按钮然后根据需要修改VBA的一小部分。)

我目前的尝试:每当我尝试输入评论时,它都会忽略我复制的内容,因此我无法使用"显示公式"按钮复制公式。

我尝试过使用F2-> Shift + Home-> Ctrl C直接复制公式栏,然后我可以将其粘贴到评论中,但这会复制文本本身而不是动作来获取文本...因此不能在其他单元格上重复使用。 (启用了相对参考)。

我也试过搞乱剪贴板,但我无法让它工作。

通过记录按钮以当前的方式吐出的公式:

Sub Formula_Comment()
'
' Formula_Comment Macro
'
' Keyboard Shortcut: Ctrl+q
'

    Range("AQ170").Select
    Range("AQ170").AddComment
    Range("AQ170").Comment.Visible = False
    Range("AQ170").Comment.Text Text:= _
        "Tom S:" & Chr(10) & "=IF('Visit Schedule (input)'!$X$3="""",0,$AW$60)"
    Range("AQ170").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub

有人有任何想法吗?

1 个答案:

答案 0 :(得分:0)

  1. Range类的AddComment方法添加注释。要添加包含单元格公式的注释,您将使用此方法:

    ActiveCell.AddComment ActiveCell.Formula

  2. 如果您还想在评论中使用您的名字,可以使用Application类的UserName属性添加它,如下所示:

    ActiveCell.AddComment Application.UserName & ":" & Chr(10) & ActiveCell.Formula

  3. 如果单元格已经有注释,则此方法将失败并返回错误,因此在创建新注释之前删除该注释是明智的。您可以使用Range类的ClearComments方法:

    ActiveCell.ClearComments

  4. 可以使用以下行对单元格进行着色:

    ActiveCell.Interior.Color = 65535

  5. 现在,由于我们拥有所需的一切,我们可以创建一个sub

    Sub Formula_Comment()
        With ActiveCell
            .ClearComments
            .AddComment Application.UserName & ":" & Chr(10) & .Formula
            .Interior.Color = 65535
        End With
    End Sub
    

    请注意,我们从大多数代码中删除了ActiveCell,因为我们决定使用With块来提高可读性。

    快乐学习! ;)