Excel VBA - 未连接单元格的“for循环”

时间:2013-06-05 09:11:51

标签: excel excel-vba for-loop vba

我的目的是在编辑时,在我的活动工作表中的大约20个单元格上自动运行宏。而不是单独为每个单元格使用相同的宏(使代码非常长且笨拙),我想创建一个类似于这样的for循环:

for i="A10","A21","C3" ... etc
if target.address = "i" then
'execute macro
end if

我不太确定如何做到这一点......或许另一种方式是更好的选择?

我非常感谢你对此事的帮助 - 非常感谢你。

2 个答案:

答案 0 :(得分:2)

您可以使用Worksheet_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

答案 1 :(得分:0)

您可以使用Worksheet_Change事件来捕获编辑内容。请参阅http://msdn.microsoft.com/en-us/library/office/ff839775.aspx

事件正文接收表示已修改单元格的Range对象。然后,您可以使用Application.Intersect确定您的某个目标单元格是否在修改后的范围内。