vba - 将向左弹出的评论移动到另一列可以使其向右弹出,修改评论的内容也可以

标签 vba excel comments location

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/

相关文章:

mysql - 使用VBA在MySQL Blob中存储字节数组

VBA Excel to Word - 对于下一个循环随机跳过数据

excel - 当平面文件中的列和行不匹配时,如何解决(使用)ETL

Python 样式 : should I avoid commenting my import statements?

mysql - 显示作者对 author.php 的最新评论

excel - 确定 Excel 工作簿是否曾经保存过?

vba - 搜索列,复制序列号并粘贴到重复列vba

excel - 如何防止 Excel 用户窗体自动收缩/扩展?

python - 保存工作簿时出现 KeyError

css - 特定文件类型(如 SASS)的 Visual Studio 代码注释标签已更改