VBA初学者。
我想要运行3个动态命名范围,每个范围都有相同数量的条目。 目前,我正在逐个遍历每个人:
For Each M in worksheets(x).Range("Range1")
For Each N in worksheets(x).Range("Range2")
For Each O in worksheets(x).Range("Range3")
IF ( Depends on M) Then
(Does things to ranges N and O)
End IF
Next
Next
Next
但是每个中的值都匹配,因此大部分都是不必要的 - 这会循环多达80 ^ 3次,而实际上只需要80次,因为数据在范围之间匹配。
所以我希望单个循环遍历Range1中的所有Ms(例如),并且还以相同的速率遍历范围2和3中的行: 所以它将考虑M(1),N(1),O(1),然后继续向下到M(2),N(2),O(2)等,直到它击中一个空单元格Range1(结束 - 动态),此时它应该停止。
我希望这是有道理的。
答案 0 :(得分:0)
您将以某种方式将M中的信息链接到N和O的范围。从您的代码中可以看出它们是如何链接的,但如果行相同,则可以执行以下操作:
For Each M in worksheets(x).Range("Range1")
IF ( Depends on M) Then
Do something to RangeN.Rows(M.row)
Do something to RangeO.Rows(M.row)
End IF
Next