Excel 2016 for Mac 中的自动调整注释框大小
Posted
技术标签:
【中文标题】Excel 2016 for Mac 中的自动调整注释框大小【英文标题】:Autosize comment box in Excel 2016 for Mac 【发布时间】:2018-12-29 02:17:15 【问题描述】:我已更新到 Excel 2016,以下在 Excel 2011 中运行的代码会生成此错误。
Dim Commnt As Comment
For Each Commnt In Application.ActiveSheet.Comments ' Autosize all comment boxes on the sheet
Commnt.Shape.TextFrame.AutoSize = True
Next
在 Excel 2016 中自动调整所有工作表 cmets 的任务是如何完成的?
经过进一步研究,我尝试了以下但没有成功。
Dim Shp As Shape
For Each Shp In wks1.Shapes
With Shp.TextFrame2
.AutoSize = msoAutoSizeShapeToFitText
.WordWrap = msoTrue
End With
Next Shp
【问题讨论】:
这是一个奇怪的错误,因为 TextFrame 不是方法而是属性。 如果你使用TextFrame2
,你会得到同样的错误吗?这个错误是发生在所有 cmets 上还是只发生在其中一部分上?
在您发布的代码的 sn-p 中,您有七个可能导致该错误的原因。第一行中的Application
、ActiveSheets
或Comments
,或Commnt
、Shape
或TextFrame
均无效(前六个),或AutoSize
不作为TextFrame
(第七个)。使用调试器找出导致问题的原因。
您的第二次尝试是迭代 Shapes
集合,而不是 Comments
集合。
虽然用下面给出的答案尝试它,它也不起作用。
【参考方案1】:
如 MSDN 中所述,Comment 的 TextFrame(和 TextFrame2)属性在 Excel 2016 中是只读的。
https://msdn.microsoft.com/en-us/vba/excel-vba/articles/shape-textframe-property-excel https://msdn.microsoft.com/en-us/vba/excel-vba/articles/shape-textframe2-property-excel
使用 Excel 365 进行的快速测试表明,可以使用 Shape 对象本身的 Autosize 属性来自动调整注释大小。
Dim Commnt As Comment
For Each Commnt In Application.ActiveSheet.Comments ' Autosize all comment boxes on the sheet
Commnt.Shape.AutoSize = True
Next
但是,这似乎不适用于 Excel 2016。
【讨论】:
删除 TextFrame 会导致运行宏时出现编译错误“找不到方法或数据成员”。在发布之前,我查看了 MSDN 参考资料,但没有找到。解决方案或了解如何解决我的问题。 也许 Mac OS Excel 有一个 Comment.Shape.Autosize 属性,但 Windows 操作系统没有。 msdn.microsoft.com/en-us/vba/excel-vba/articles/… 感谢大家的考虑和时间!但是,有没有办法根据 cmets 调整评论框的大小?以上是关于Excel 2016 for Mac 中的自动调整注释框大小的主要内容,如果未能解决你的问题,请参考以下文章
AppleScriptTask 命令在 Excel 2016 for Mac VBA 中不起作用
为啥 Excel 中的自动调整行 VBA 代码不断在我的公式中导致 #value 错误?