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