Почему этот раздел кода VBA не выполняется через Do Do l oop и не проверяет условия? - PullRequest
0 голосов
/ 01 апреля 2020

Я создаю код VBA для сортировки и вставки данных, и это фрагмент кода:

If J = 0 And Result2 = vbYes Then
    For i = 3 To 82
        W = Sheets("Sheet1").Cells(i, 4).Value
        JanuaryTimesN = Array("N:Nov-Mar S:May-Sept", "N:Oct-Mar S:Apr-Sept", "N:Dec-Feb S:June-Aug", "N:Dec-Mar S:June-Sept", "N:Sept-Mar S:Mar-Sept", "N:Nov-Feb S:May-Aug", "N:Dec-Aug S:June-Feb", "N:Jan-Apr S:May-Nov", "N:Dec-May S:June-Nov")

        Do Until WComp = 0 Or Z = 11
            WComp = StrComp(W, JanuaryTimesN(Z), vbTextCompare)
            Z = Z + 1
        Loop

        If WComp = 0 Then
            Sheets("Sheet1").Rows(i).Copy
            Sheets("Sheet2").Activate
            Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select
            ActiveSheet.Paste
        End If
    Next

По какой-то причине, когда я запускаю свой код, он делает все правильно, кроме основной сортировки и состояние процесса. Кажется, мой код не работает через мой код Do Until, и если он StrComp, он работает неправильно. Я полагаю, что он не проходит через него вообще, потому что я поместил End function внутри него после строки strcomp, и это не остановило выполнение макроса через весь остальной код. И вместо того, чтобы взять только несколько моих строк, он вставил их все, что показывает, что он не проходит через l oop. Любая помощь?

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