Пропустить столбец итерации - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь сделать следующее: если vInputs(1, i) меньше 22, я хочу, чтобы код перешел к следующему столбцу итерации, и если оно больше 22, просто продолжить с кодом.

проблема в If vInputs(1, i)... строке.Не уверен, что я делаю не так:

Sub CreateTestResultTableV2()

Application.ScreenUpdating = False 'helps the code run faster


Dim vInputs, vResults()
Dim c As Integer, i As Integer

'create INPUTS array
c = Range("b5").End(xlToRight).Column
vInputs = Range("b5", Cells(8, c))
    'determine last value in the column
    c = UBound(vInputs, 2)

'create RESULTS array
ReDim vResults(1 To 3, 1 To c)

For i = 1 To c

    If vInputs(1, i) <= 22 Then GoTo Next i
    Else
        'set values
        Range("j16") = vInputs(1, i)
        Range("n12") = vInputs(4, i)

            'copy output values into RESULTS array
            vResults(1, i) = Range("h41")
            vResults(2, i) = Range("k41")
            vResults(3, i) = Range("z14")

Next i

Range("e47").Resize(3, c) = vResults

Application.ScreenUpdating = True

End Sub

1 Ответ

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

Не используйте оператор Goto для пропуска итераций в цикле.используйте противоположный оператор и выполняйте код в цикле только при условиях True.

For i = 1 To c

    If vInputs(1, i) > 22 Then 
        'set values
        Range("j16") = vInputs(1, i)
        Range("n12") = vInputs(4, i)

        'copy output values into RESULTS array
        vResults(1, i) = Range("h41")
        vResults(2, i) = Range("k41")
        vResults(3, i) = Range("z14")
    End if

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