EXCELVBA-“;for loop";对于未连接的细胞

EXCELVBA-“;for loop";对于未连接的细胞,excel,for-loop,vba,Excel,For Loop,Vba,我的目的是在编辑活动工作表中的大约20个单元格时自动运行宏。我希望创建一个类似以下内容的for循环,而不是为每个单元格单独设置相同的宏(使代码非常长且笨拙): for i="A10","A21","C3" ... etc if target.address = "i" then 'execute macro end if 我不太确定怎么做。。。也许另一种方式会是更好的选择 我非常感谢您在这件事上的帮助-真的非常感谢。您可以使用工作表\u Change事件捕获编辑。看 事件主体接收表示修改单元格

我的目的是在编辑活动工作表中的大约20个单元格时自动运行宏。我希望创建一个类似以下内容的for循环,而不是为每个单元格单独设置相同的宏(使代码非常长且笨拙):

for i="A10","A21","C3" ... etc
if target.address = "i" then
'execute macro
end if
我不太确定怎么做。。。也许另一种方式会是更好的选择


我非常感谢您在这件事上的帮助-真的非常感谢。

您可以使用
工作表\u Change
事件捕获编辑。看


事件主体接收表示修改单元格的
范围
对象。然后,您可以使用
Application.Intersect
确定目标单元格之一是否在修改范围内

您可以使用
工作表\u Change
事件。下面是示例代码。您需要将代码放在“工作表代码”部分

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False

Dim rng As Range
Set rng = Range("A1:B5")
' If there is change in this range

    If Not Intersect(rng, Target) Is Nothing Then
        MsgBox Target.Address & " range is edited"
        ' you can do manipulation here
    End If

    Application.EnableEvents = True

End Sub

我想你会发现这对你很有用Santosh,谢谢你。如何选择一个未连接的值范围,即A10、A25、C43等作为范围,而不必分别为每个值重复宏?对于多个范围,可以使用此选项<代码>设置rng=范围(“A10、A25、C43”)根据您的示例。