仅在For Each循环中处理特定范围内的注释

时间:2018-07-06 15:07:00

标签: excel-vba vba excel

在研究注释的不同方面并编写一些处理注释的宏时,在对注释执行任何操作时,我不断看到并使用ActiveSheet.Comments。我还没有找到我们仅在一定范围内进行操作的示例。 (除了单个单元格之外,但我无法使其在更大范围内工作,并且无法掌握on错误语句。)我无法通过注释编号执行此操作,因为工作表是由多人编辑的,其中很多行是后端公式隐藏在行中。 我尝试设置范围和with语句内,但无法获取。

(第三行运行时438)

Set rngComments = Sheets("Rate Calculator v6").Range("F3:N46").SpecialCells(xlCellTypeComments)
With rngComments
  For Each Cmt In Application.rngComments.Comments 'also tried removing ".comments", same error
  Cmt.Shape.TextFrame.AutoSize = True
Next Cmt
End With

(如果我尝试的话,运行时13类型不匹配的最后一行:)

Dim rngComments As Range
Dim Cmt As Comment
For Each Cmt In rngComments

我也尝试过删除.SpecialCells(xlCellTypeComments)和其他一些改动,但无济于事。谢谢!

1 个答案:

答案 0 :(得分:0)

您需要类似这样的内容(根据Rory的评论)。请注意,cmt被声明为范围而不是注释。

Sub x()

Dim rngComments As Range, cmt As Range

Set rngComments = Sheets("Rate Calculator v6").Range("F3:N46").SpecialCells(xlCellTypeComments)

For Each cmt In rngComments
    cmt.Comment.Shape.TextFrame.AutoSize = True
Next cmt

End Sub