1

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

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

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

我真的很感谢你在这件事上的帮助——真的非常感谢你。

4

2 回答 2

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
于 2013-06-05T09:19:00.923 回答
0

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

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

于 2013-06-05T09:18:50.297 回答