我正在尝试创建一个宏来加速我每天需要做的常见过程。在我使用的电子表格中,我们有时需要覆盖公式。为了帮助以后查看电子表格的其他人,我们复制原始公式并将其输入注释,然后突出显示黄色单元格。
(仅供参考 - 我无法从头开始编写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
有人有任何想法吗?
答案 0 :(得分:0)
Range类的AddComment
方法添加注释。要添加包含单元格公式的注释,您将使用此方法:
ActiveCell.AddComment ActiveCell.Formula
如果您还想在评论中使用您的名字,可以使用Application类的UserName
属性添加它,如下所示:
ActiveCell.AddComment Application.UserName & ":" & Chr(10) & ActiveCell.Formula
如果单元格已经有注释,则此方法将失败并返回错误,因此在创建新注释之前删除该注释是明智的。您可以使用Range类的ClearComments
方法:
ActiveCell.ClearComments
可以使用以下行对单元格进行着色:
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
块来提高可读性。