首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自动调整单元格注释大小的VBA代码

自动调整单元格注释大小的VBA代码
EN

Stack Overflow用户
提问于 2019-02-05 17:04:06
回答 2查看 6.9K关注 0票数 4

当在Excel (2016)中添加单元格注释时,注释框的大小是众所周知的次优,需要手动调整。我定义了这个宏(用我从这里获得的VBA代码)来自动调整当鼠标悬停在单元格上方时出现的单元格注释的大小:

代码语言:javascript
运行
复制
Sub FitComments()
Dim xComment As Comment
For Each xComment In Application.ActiveSheet.Comments
    xComment.Shape.TextFrame.AutoSize = True
Next
End Sub

但是,我希望这个宏能够:

  1. 调整注释框的大小,不仅在一行上,而且跨越多行,优化矩形的纵横比( Google Spreadhseets自动调整任何单元格注释框大小的方式,第二次创建它)
  2. 不对工作表中的所有单元格注释进行操作,而仅对当前单元格的注释进行操作。

然而,我对VBA并没有真正的了解。有人能指出我必须对代码做哪些修改吗?谢谢!

EN

回答 2

Stack Overflow用户

发布于 2019-02-05 20:22:00

代码语言:javascript
运行
复制
Sub FitComments()
Dim Rng As Range
Dim Cell As Range
Set Rng = Selection
For Each Cell In Rng
    If Not Cell.Comment Is Nothing Then
    Cell.Comment.Shape.TextFrame.AutoSize = True
    End If
Next
End Sub

Excel 2016在我目前的位置无法测试上面的内容,否则在发布之前我会这样做的。我正在运行Office 365,它会按照您的描述自动调整大小。对多个版本进行了测试,直到宏没有出错。

此代码背后的概念是在每个单元格的基础上将自动大小应用于选择范围内的注释。

我将宏应用于控件+(选择字母)键盘的激活,以便快速访问。

在逐行代码的基础上,它通过测试选择的预期步骤数运行。

票数 3
EN

Stack Overflow用户

发布于 2019-03-19 07:56:55

代码语言:javascript
运行
复制
Sub Resize_All_Comments()

Dim xComment As Comment
Dim KHeight As Long
Dim KWidth As Long

On Error Resume Next

KHeight = Application.InputBox("Add text", "Height", "500", Type:=2)
KWidth = Application.InputBox("Add text", "Width", "500", Type:=2)

For Each xComment In Application.Select.Comment
    xComment.Shape.Width = KWidth
    xComment.Shape.Height = KHeight

Next
MsgBox "Done"
End Sub

使用此选项,您可以根据需要调整大小,请注意,它将调整当前工作表中所有注释的大小。

希望它能帮到别人

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54539574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档