我的目的是在编辑活动工作表中的大约 20 个单元格时自动运行宏。我不想为每个单元格单独使用相同的宏(使代码非常长且笨拙),而是想创建一个类似于这样的 for 循环:
for i="A10","A21","C3" ... etc
if target.address = "i" then
'execute macro
end if
我不太确定如何做到这一点......也许另一种方式会是更好的选择?
我真的很感谢你在这件事上的帮助——真的非常感谢你。
您可以使用该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
来确定您的目标单元格之一是否在修改后的范围内。