【问题标题】:Copy a formula into a comment via macro通过宏将公式复制到评论中
【发布时间】:2015-11-26 17:13:06
【问题描述】:

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

(仅供参考 - 我无法从头开始编写 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

有人知道吗?

【问题讨论】:

  • 为什么不学习足够的 VBA 以便可以从头开始编写宏? VBA 的学习曲线相当平缓,并且有大量的教程和书籍旨在帮助您完成它。您可以对录制的宏执行的操作是有限度的。

标签: vba excel comments excel-2013


【解决方案1】:
  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

现在,既然我们拥有所需的一切,我们可以创建一个sub

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

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

学习愉快! ;)

【讨论】:

    猜你喜欢
    • 2018-05-16
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 2014-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多