【问题标题】:Autosize comment box in Excel 2016 for MacExcel 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 集合。
  • 虽然用下面给出的答案尝试它,它也不起作用。

标签: excel vba macos excel-2016


【解决方案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 调整评论框的大小?
猜你喜欢
  • 2017-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-16
  • 2013-08-17
  • 2014-09-23
  • 1970-01-01
相关资源
最近更新 更多