如何运行只在某一列Excel中的宏?

How to run a Macro in Excel only in a certain column?

这个 excel 的宏会自动将我的活动工作表中的所有复选框链接到它们所在的单元格。但是我需要它 运行 仅在特定列而不是整个工作表中。代码如下所示:

Sub LinkChecklist()

Dim chk As CheckBox

For Each chk In ActiveSheet.CheckBoxes
    chk.LinkedCell = chk.TopLeftCell.Offset(0, 0).Address
Next

End Sub 

您可以使用 .TopLeftCell 范围的 属性 列吗? 在下面的示例中,它只会在 TopLeftCell 位于 D 列时触发?

顺便说一句,.Offset(0,0) 是多余的吗?它不会添加或执行任何操作?

Sub LinkChecklist()
Dim chk As CheckBox

For Each chk In ActiveSheet.CheckBoxes
    col = chk.TopLeftCell.Column
    If col = 4 Then
        chk.LinkedCell = chk.TopLeftCell.Address
    End If
Next
End sub

作为建议,学习在代码中使用 Locals window 和断点来检查变量的值。这样您就可以经常发现您可以使用的有价值的属性?