我想用宏来模拟默认的插入注释按钮的行为。我希望将所有宏存储在个人工作簿中,而不是活动工作簿中。我希望它只是创建一个评论,然后将焦点设置到那个空评论上。下面是我到目前为止所做的,使用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
我收到以下错误:
发布于 2018-08-31 09:55:55
使注释可见后,可以使用以下方法选择该注释:
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
https://stackoverflow.com/questions/52106039
复制相似问题