首页 > 解决方案 > 使用 For Each 循环(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

标签: excelvba

解决方案


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

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

最后,您需要将要从中调用方法/属性的对象包含在该行中,除非您使用 aWith它只是同一事物的一些语法糖。

所以在一起是这样的:

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

推荐阅读