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 中,您有七个可能导致该错误的原因。第一行中的ApplicationActiveSheetsComments,或CommntShapeTextFrame 均无效(前六个),或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 for Mac 2016 中另存为 CSV

为啥 Excel 中的自动调整行 VBA 代码不断在我的公式中导致 #value 错误?

Office 2016 for mac该怎么破解激活

有没有Microsoft Publisher for Mac的

更改列中的列宽或行高Excel