vba - 嵌套循环在 VBA 中未正确循环 - 一个有效,另一个有效

标签 vba excel excel-2010 nested-loops

我有一个项目正在复杂的步骤中进行。对于这一步,我试图让一个程序在一定数量的行(我使用 For 循环)内重复一定次数(我试图使用 Do Until 循环) .行数大于(大得多)我希望程序循环的次数。我尝试使用两个循环的原因是因为我想在 i 范围内的每一行中搜索各种条件,但我只想更改前 n 个匹配项。因为我不知道匹配的位置或距离有多远,所以我需要搜索完整的 9000+ 范围。

到目前为止,单独的 for 循环有效,但我无法弄清楚如何成功添加 Do Until 循环。我在内部和外部都尝试过 For 循环,但都没有工作。

在此示例中,for 循环位于内部。本来应该是 9,结果是 9,057(E 的值):

    Sub Hilight()

Dim usch As Worksheet
Set usch = Worksheets("USCH attributes")
Dim m As Worksheet
Set m = Worksheets("Maps")

Dim i As Integer
Dim E As Integer
Dim n As Integer

Dim s1 As String
Dim s2 As String
Dim s3 As String
s1 = Range("U1").Value
s2 = Range("V1").Value
s3 = Range("W1").Value

Dim rU As String
Dim rE As String
Dim rA As String
rU = m.Range("D4").Value
rE = m.Range("D3").Value
rA = m.Range("D2").Value

E = Range("S1").Value
n = 0
        Do Until n >= 9  
        For i = 1 To E
            n = n + 1
            Debug.Print n
            If Cells(i, 15).Value = s3 And Cells(i, 13).Value = rA And Cells(i, 11) = "" Then   
                Cells(i, 15).Interior.ColorIndex = 0
            End If     
        Next i
        Loop
End Sub

我猜,下一个外部带有 for 循环的示例会更好一些?调试只打印了 9 个,所以很好。不幸的是,For 循环似乎根本没有运行,因为没有任何改变颜色。 (只粘贴内部代码,因为所有的暗淡都是一样的)
 For i = 1 To E
    Do Until n >= 9
        n = n + 1
        Debug.Print n
        If Cells(i, 15).Value = s3 And Cells(i, 13).Value = rA And Cells(i, 11) = "" Then
            Cells(i, 15).Interior.ColorIndex = 37
        End If
    Loop  
    Next i

我想过将 n = 0 放在循环中,但这只会打印 1 九千次,对吧?

你们能帮我解决这个问题以正常运行吗?我已经阅读了三天的循环教程,但我无法让它工作:(我非常感谢任何帮助!

最佳答案

我不知道我是否正确阅读了您的问题,所以这是对您要求的猜测。

以下内容读取所有行( E ),但计算 n 中有多少匹配/更改并在 n 时停止进行这些更改变得高于9。

n = 0

For i = 1 To E
    If n < 10 And Cells(i, 15).Value = s3 And Cells(i, 13).Value = rA And Cells(i, 11) = "" Then
        Cells(i, 15).Interior.ColorIndex = 0
        n = n + 1
    End If
Next i

关于vba - 嵌套循环在 VBA 中未正确循环 - 一个有效,另一个有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51365086/

相关文章:

excel - 允许 Access 用户选择 Excel 工作表进行链接

vba - 如何通过指定范围而不是UsedRange选项使用Excel宏清除单元格填充颜色

excel - 是否有一个函数,当输入 ref 为空时返回 "",如果不是,则返回其内容?

vba - 使用vba取消合并并粘贴单元格

vba - 这些新颖的方法 [并且可能是最好的方法?] 在 VBA 中引用动态单元格吗?

javascript - nodejs - 帮助 "promisifying"使用嵌套 promise 读取文件

python - 如何在python中使用openpyxl将范围从一张纸复制到另一张纸作为值

ms-office - Excel 2010中的共享字符串

Excel 2010 VBA - 错误 : Object variable or With Block variable not set

如果设计表链接到零件文件(从 Excel 控制),则 VBA SOLIDWORKS Pack and Go 重命名不起作用