使用 For Each 循环向行中的每个单元格添加注释 (VBA Excel)

Add a comment to every cell in a row with For Each loop (VBA Excel)

提问人:mbur_1 提问时间:9/29/2021 最后编辑:BigBenmbur_1 更新时间:9/30/2021 访问量:353

问:

我正在尝试使用 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
Excel VBA

评论

5赞 BigBen 9/29/2021
cell.Address?请注意,这意味着整个列一直到工作表的最后一行,而不是包含数据的最后一行)。Set rng = Columns(2)

答:

2赞 Warcupine 9/29/2021 #1

正如 BigBen 所指出的,它是 range 对象的属性,而不是将范围传递给的函数。Address

你不能将 a with a Range 对象一起使用,因为它将遍历列而不是列中的单元格(再次感谢 BigBen),并且你不能像这样一次性向范围添加注释。此外,BigBen 还指出,你不想遍历整个列,那是很多单元格。For EachColumns

最后,你需要将你从中调用方法/属性的对象包含在行中,除非你使用一个 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