Excel 注释弹出窗口通常位于右侧,但有时也位于左侧。将向左弹出的评论移动到另一列可以使其向右弹出,修改评论的内容也可以。 Excel是如何利用列和注释信息来控制弹出方向的?能否更直接地控制弹出方向?我可以找到 MS 没有记录这一点。我并不是要求使用 Visual Basic 方法来控制评论弹出位置,因为我已经知道如何执行此操作。非常感谢。
最佳答案
注释框按照单元格内注释的形状存储。
此代码将控制相对于其存储在其中的事件单元格的弹出方向。 (假设单元格 D8 中有注释)
Sub MoveCommentLocation()
Dim x As Integer
Dim y As Integer
Dim bVisible As Boolean
With Range("D8")
' read position of the cell
x = .Left
y = .Top
' if comment is initially hidden, we need to unhide it to move it
bVisible = .Comment.Visible
If Not bVisible Then .Comment.Visible = True
With .Comment.Shape
' move comment relative to the cell
.Left = x - 30
.Top = y + 50
End With
If Not bVisible Then .Comment.Visible = False
End With
End Sub
注意: 如果评论已隐藏,您需要在移动之前取消隐藏该评论。 (上面包含代码)
此外,Excel 会选择注释框距离单元格右上角最近的角来选择绘制箭头的位置。如果您的评论框的大小/形状会因上下文和字体而有所不同,我建议将它们放置在单元格的右下角,以便该位置始终指向左上角。
关于vba - 将向左弹出的评论移动到另一列可以使其向右弹出,修改评论的内容也可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12486052/