我想模仿带有宏的默认插入注释按钮的行为。我想将所有宏存储在“个人”工作簿中,而不是活动工作簿中。
我希望它只是创建一个注释,然后将焦点设置为该空注释。
以下是我到目前为止的内容,使用Terry的建议对评论.Visible
进行评论,然后对.Shape.Select
进行评论:
Sub addNewComment()
Dim authorName As String
Dim authorNameLength As Integer
authorName = Application.UserName
authorNameLength = Len(authorName)
ActiveCell.AddComment _
authorName & ":" _
& Chr(10)
With ActiveCell.Comment
With .Shape
.AutoShapeType = msoShapeFoldedCorner
.Fill.ForeColor.RGB = RGB(215, 224, 239)
With .TextFrame
.AutoSize = True
.Characters.Font.Size = 11
.Characters.Font.Name = "Calibri"
.Characters(1, (authorNameLength + 1)).Font.Bold = True
.Characters((authorNameLength + 2), 1).Font.Bold = False
End With
End With
.Visible = True
.Shape.Select True
End With
End Sub
我不确定如何获取评论以使其不可见。我是否存储对刚刚添加注释的单元格的引用,然后通过Worksheet_SelectionChange
事件引用该单元格?还是让该事件仅隐藏工作表上的所有评论?个人工作簿是否可以完全使用Worksheet_SelectionChange
?
另外,在我键入和添加换行符时,我的注释框不会调整大小。我退出后确实会调整大小,但实际上太大了大约四行。不知道为什么会这样。
我确信还有一种更干净的方式来组织With块。
我尝试使用以下内容在选择另一个单元格后再次隐藏评论:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Comment.Visible = False
End Sub
我收到以下错误:
答案 0 :(得分:1)
您可以使用以下命令选择可见的注释:
With range("a1")
.Comment.Visible = True
.Comment.Shape.Select True
End With
但是我认为一旦取消选择,您将需要另一个宏来再次隐藏注释,否则它将保持可见。您可以尝试在工作表的SelectionChange事件上执行此操作:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Comment.Visible = False
End Sub