EXCELVBA-“;for loop";对于未连接的细胞
我的目的是在编辑活动工作表中的大约20个单元格时自动运行宏。我希望创建一个类似以下内容的for循环,而不是为每个单元格单独设置相同的宏(使代码非常长且笨拙):EXCELVBA-“;for loop";对于未连接的细胞,excel,for-loop,vba,Excel,For Loop,Vba,我的目的是在编辑活动工作表中的大约20个单元格时自动运行宏。我希望创建一个类似以下内容的for循环,而不是为每个单元格单独设置相同的宏(使代码非常长且笨拙): for i="A10","A21","C3" ... etc if target.address = "i" then 'execute macro end if 我不太确定怎么做。。。也许另一种方式会是更好的选择 我非常感谢您在这件事上的帮助-真的非常感谢。您可以使用工作表\u Change事件捕获编辑。看 事件主体接收表示修改单元格
for i="A10","A21","C3" ... etc
if target.address = "i" then
'execute macro
end if
我不太确定怎么做。。。也许另一种方式会是更好的选择
我非常感谢您在这件事上的帮助-真的非常感谢。您可以使用
工作表\u Change
事件捕获编辑。看
事件主体接收表示修改单元格的
范围
对象。然后,您可以使用Application.Intersect
确定目标单元格之一是否在修改范围内 您可以使用工作表\u 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
我想你会发现这对你很有用Santosh,谢谢你。如何选择一个未连接的值范围,即A10、A25、C43等作为范围,而不必分别为每个值重复宏?对于多个范围,可以使用此选项<代码>设置rng=范围(“A10、A25、C43”)根据您的示例。