Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 通过宏将公式复制到注释中_Vba_Excel_Comments_Excel 2013 - Fatal编程技术网

Vba 通过宏将公式复制到注释中

Vba 通过宏将公式复制到注释中,vba,excel,comments,excel-2013,Vba,Excel,Comments,Excel 2013,我正在尝试创建一个宏,以加快我每天需要执行的常见过程。在我使用的电子表格中,我们有时需要覆盖公式。为了帮助以后查看电子表格的其他人,我们复制原始公式并将其输入注释,然后突出显示黄色单元格 (仅供参考-我不能从头开始编写VBA,但我通常可以使用录制宏按钮,然后根据需要修改VBA的小部分。) 我当前的尝试:每当我尝试输入注释时,它会忽略我复制的内容,因此我无法使用“显示公式”按钮复制公式 我曾尝试使用F2->Shift+Home->Ctrl C直接复制公式栏,然后将其粘贴到注释中,但这会复制文本本身

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

(仅供参考-我不能从头开始编写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
有人知道吗

  • Range类的
    AddComment
    方法添加注释。要添加包含单元格公式的注释,请使用以下方法:

    ActiveCell.AddComment-ActiveCell.Formula

  • 如果您还希望在注释中包含您的姓名,可以使用应用程序类的
    UserName
    属性添加该姓名,如下所示:

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

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

    ActiveCell.ClearComments

  • 仅使用以下线条即可对单元格着色:

    ActiveCell.Interior.Color=65535

  • 现在,既然我们有了所需的一切,我们就可以创建一个

    Sub Formula_Comment()
        With ActiveCell
            .ClearComments
            .AddComment Application.UserName & ":" & Chr(10) & .Formula
            .Interior.Color = 65535
        End With
    End Sub
    
    请注意,我们从大多数代码中删除了
    ActiveCell
    ,因为我们决定将
    块一起使用,以提高可读性


    快乐学习!;)

    为什么不学习足够的VBA,以便从头开始编写宏?VBA有一个相当温和的学习曲线,有大量的教程和书籍,旨在帮助您遍历它。您可以对录制的宏执行的操作是有限的。