通过宏将公式复制到注释中
Copy a formula into a comment via macro
我正在尝试创建一个宏来加速我每天需要做的一个常见过程。在我使用的电子表格上,我们有时需要覆盖公式。为了对以后查看电子表格的其他人有所帮助,我们复制原始公式并将其输入到注释中,然后将单元格突出显示为黄色。
(仅供参考 - 我无法从头开始编写 VBA,但我通常可以使用录制宏按钮然后根据需要修改 VBA 的小部分。)
我目前的尝试:每当我尝试输入评论时,它都会忽略我复制的内容,因此我无法使用 "show formulas" 按钮复制公式。
我试过使用 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="""",0,$AW)"
Range("AQ170").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
有人知道吗?
Rangeclass的AddComment
方法添加注释。要添加包含单元格公式的注释,您可以像这样使用此方法:
ActiveCell.AddComment ActiveCell.Formula
如果您还想在评论中加入您的名字,您可以使用应用程序 class 的 UserName
属性 添加它,如下所示:
ActiveCell.AddComment Application.UserName & ":" & Chr(10) & ActiveCell.Formula
如果单元格已经有评论,此方法将失败并 return 出错,因此明智的做法是在创建新评论之前删除现有评论。您可以使用范围 class:
的 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
块以提高可读性。
祝您学习愉快! ;)
我正在尝试创建一个宏来加速我每天需要做的一个常见过程。在我使用的电子表格上,我们有时需要覆盖公式。为了对以后查看电子表格的其他人有所帮助,我们复制原始公式并将其输入到注释中,然后将单元格突出显示为黄色。
(仅供参考 - 我无法从头开始编写 VBA,但我通常可以使用录制宏按钮然后根据需要修改 VBA 的小部分。)
我目前的尝试:每当我尝试输入评论时,它都会忽略我复制的内容,因此我无法使用 "show formulas" 按钮复制公式。
我试过使用 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="""",0,$AW)"
Range("AQ170").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
有人知道吗?
Rangeclass的
AddComment
方法添加注释。要添加包含单元格公式的注释,您可以像这样使用此方法:ActiveCell.AddComment ActiveCell.Formula
如果您还想在评论中加入您的名字,您可以使用应用程序 class 的
UserName
属性 添加它,如下所示:ActiveCell.AddComment Application.UserName & ":" & Chr(10) & ActiveCell.Formula
如果单元格已经有评论,此方法将失败并 return 出错,因此明智的做法是在创建新评论之前删除现有评论。您可以使用范围 class:
的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
块以提高可读性。
祝您学习愉快! ;)