держать значение переменной вне цикла - PullRequest
0 голосов
/ 19 февраля 2019

Я присваиваю значение переменной внутри цикла, который находится внутри оператора if.Когда оператор if является выходом, значение переменной становится неназначенным.Мне нужно сохранить значение переменной, потому что мне нужно обновленное значение на следующей итерации.

В приведенном ниже примере я начинаю с Z = 2, затем вводлю цикл, первый оператор IF в цикле проверяет, чтоZ = 2, затем выполняет задание, затем переназначает Z = 1, затем выходит из оператора, и когда начинается следующая итерация i-цикла, значение Z больше не равно 1, а снова становится 2. Как я могу сохранить значение для следующего iитерация?

Sub qwer()

Z = 2

For i = 2 To 80

    If Z = 2 Then
        For l = 2 To 80
        If Cells(l, "A").Value = 2 Then
        Cells(i, "F").Value = Cells(l, "E").Value
        Cells(l, "A").Value = ""
        Z = Cells(l, "C").Value
        Exit For
        End If
        Next
    End If
Exit For

    If Z = 1 Then
        For l = 2 To 80
        If Cells(l, "A").Value = 1 Then
        Cells(i, "F").Value = Cells(l, "E").Value
        Cells(l, "A") = ""
        Z = Cells(l, "A").Value
        Exit For
        End If
        Next
    End If

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019
Sub qwer()
Z = 2
For i = 2 To 800
    If Z = 2 Then
        For l = 2 To 80
        If Cells(l, "A").Value = 2 Then
        Cells(i, "F").Value = Cells(l, "E").Value
        Cells(l, "A").Value = ""
        Z = Cells(l, "C").Value
        Exit For
        End If
        Next
    ElseIf Z = 1 Then
        For l = 2 To 80
        If Cells(l, "A").Value = 1 Then
        Cells(i, "F").Value = Cells(l, "E").Value
        Cells(l, "A") = ""
        Z = Cells(l, "C").Value
        Exit For
        End If
        Next
    ElseIf Z = 3 Then
        For l = 2 To 80
        If Cells(l, "A").Value = 3 Then
        Cells(i, "F").Value = Cells(l, "E").Value
        Cells(l, "A") = ""
        Z = Cells(l, "C").Value
        Exit For
        End If
        Next
    ElseIf Z = 4 Then
        For l = 2 To 80
        If Cells(l, "A").Value = 4 Then
        Cells(i, "F").Value = Cells(l, "E").Value
        Cells(l, "A") = ""
        Z = Cells(l, "C").Value
        Exit For
        End If
        Next
    ElseIf Z = 5 Then
        For l = 2 To 80
        If Cells(l, "A").Value = 5 Then
        Cells(i, "F").Value = Cells(l, "E").Value
        Cells(l, "A") = ""
        Z = Cells(l, "C").Value
        Exit For
        End If
        Next
    End If
Next i
End Sub
0 голосов
/ 19 февраля 2019

перед Sub qwer () напишите:

Public z As Long

Это сохранит значение при выполнении вашего кода.Если вы остановите код, я рекомендую сохранить его в листе VeryHidden.

Надеюсь, это работает для вас!

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