提问人:mbur_1 提问时间:9/29/2021 最后编辑:BigBenmbur_1 更新时间:9/30/2021 访问量:353
使用 For Each 循环向行中的每个单元格添加注释 (VBA Excel)
Add a comment to every cell in a row with For Each loop (VBA Excel)
问:
我正在尝试使用 For Each 循环向 excel 工作表中第二列的每个单元格添加注释。我想将单元格地址(例如 $B$1)写到评论中。到目前为止,这是我的代码,但它不起作用。我不知道出了什么问题。对不起,我是一个菜鸟,不知道如何让对循环第二行中单元格的引用起作用:
Sub TestZelladresse()
Dim rng As Range
Dim cell As Range
Set rng = Columns(2)
For Each cell In rng
.AddComment (Address(cell))
Next cell
End Sub
答:
2赞
Warcupine
9/29/2021
#1
正如 BigBen 所指出的,它是 range 对象的属性,而不是将范围传递给的函数。Address
你不能将 a with a Range 对象一起使用,因为它将遍历列而不是列中的单元格(再次感谢 BigBen),并且你不能像这样一次性向范围添加注释。此外,BigBen 还指出,你不想遍历整个列,那是很多单元格。For Each
Columns
最后,你需要将你从中调用方法/属性的对象包含在行中,除非你使用一个 which is just some syntactic sugar for same thing。With
所以所有的东西都是这样的:
Sub TestZelladresse()
Dim rng As Range
Dim cell As Range
Set rng = Range(Cells(1, 2), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 2))
For Each cell In rng
cell.AddComment cell.Address
Next cell
End Sub
评论
cell.Address
?请注意,这意味着整个列一直到工作表的最后一行,而不是包含数据的最后一行)。Set rng = Columns(2)