Вложенный делать пока работает только 1 раз - PullRequest
0 голосов
/ 05 января 2019

Всего должно быть 125 выходов, но поступают только 5 выходов, потому что только самый внутренний цикл (цикл c) работает 5 раз. Цикл a & b не работает, я не уверен почему. Я попытался решить эту проблему аналогично с помощью «for .... next», и это дало 45 выходных данных.

просьба о помощи. извините за плохой английский.

Sub ColourCheck2()

Dim a, b, c As Long

Application.ScreenUpdating = False

a = 1
b = 6
c = 11

Do Until a > 5
    Do Until b > 10
        Do Until c > 15
            Sheet2.Cells(b + c, a).Value = a & " " & b & " " & c
            Sheet2.Cells(b + c, a).Interior.Color = RGB(a, b, c)
            c = c + 1
        Loop
    b = b + 1
    Loop
    a = a + 1
Loop

Application.ScreenUpdating = True

End Sub

Результаты


Колонка A Колонка B Колонка C
1 6 11 2 6 11 3 6 11
1 6 12 2 6 12 3 6 12
1 6 13 2 6 13 3 6 13
1 6 14 2 6 14 3 6 14
1 6 15 2 6 15 3 6 15
1 7 11 2 7 11 3 7 11
1 7 12 2 7 12 3 7 12
1 7 13 2 7 13 3 7 13
1 7 14 2 7 14 3 7 14
1 7 15 2 7 15 3 7 15
1 8 11 2 8 11 3 8 11
1 8 12 2 8 12 3 8 12
1 8 13 2 8 13 3 8 13
1 8 14 2 8 14 3 8 14
1 8 15 2 8 15 3 8 15
и так далее внизу также ..

аналогично для колонки D & E также

Ответы [ 2 ]

0 голосов
/ 05 января 2019

Или просто используйте для / следующих циклов:

For a = 1 to 5
    For b = 6 to 10
        For c = 11 to 15
            Sheet2.Cells(b + c, a).Value = a & " " & b & " " & c
            Sheet2.Cells(b + c, a).Interior.Color = RGB(a, b, c)
        Next c
    Next b
Next a
0 голосов
/ 05 января 2019

Вот, пожалуйста,

Sub ColourCheck2()

    Dim a As Long, b As Long, c As Long, d As Long

    Application.ScreenUpdating = False

    a = 1
    b = 6
    c = 11
    d = 0

    Do Until a > 5
        d = 0
        b = 6
        Do Until b > 10
            c = 11
            Do Until c > 15
                Sheet2.Cells(b + (d * 4) + c, a).Value = a & " " & b & " " & c
                Sheet2.Cells(b + (d * 4) + c, a).Interior.Color = vbYellow ' RGB(a, b, c)
                c = c + 1

            Loop
            d = d + 1
            b = b + 1
        Loop
        a = a + 1
    Loop

    Application.ScreenUpdating = True

End Sub

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...