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

我的目的是在编辑后的活动工作表中的大约20个单元格上自动运行一个macros。 而不是每个单元格都有相同的macros(使代码非常长且笨拙),我想创build一个for循环,如下所示:

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

我不太清楚如何做到这一点…也许另一种方式将是一个更好的select?

我真的很感谢你的帮助,非常感谢你。

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

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

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