繁体   English   中英

VBA For Each循环几个范围

[英]VBA For Each loop several ranges

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中的所有M(例如),并以相同的速率遍历Range 2和3中的行:因此,它将考虑M(1),N(1), O(1),然后一直到M(2),N(2),O(2)等,直到它碰到Range1中的一个空单元格(末端-它的动态),这时应该停。

我希望这是有道理的。

您将必须以某种方式将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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM