почему мой код VBA всегда пропускает 1-й цикл? - PullRequest
0 голосов
/ 09 декабря 2018

Я пытаюсь сделать так, чтобы мой код VBA проходил через все мои ячейки и уменьшал число уже существующего числа на моем 2-м листе на 1 каждый раз, когда он встречает определенный текст в ячейке.Однако всякий раз, когда я запускаю свой цикл поэтапно, кажется, что он пропускает следующий j и переходит непосредственно к следующему i каждый раз, когда идет следующий ряд.Есть ли какая-то ошибка форматирования с моим кодом?

Sub DeleteSAC()

Dim count As Integer
Dim i As Integer
Dim j As Integer

Sheets(1).Select

lastRow = ActiveSheet.Cells(Rows.count, "B").End(xlUp).Row

'have to keep data in a table for this to actually work as it ctrls+left to the table, which will end where the very last text of any row is
lastColumn = ActiveSheet.Cells(1, Columns.count).End(xlToLeft).Column


count = Sheet2.Cells(1, 7).Value
i = 2
j = lastColumn

For i = 2 To lastRow
For j = lastColumn To 1
If Sheet1.Cells(i, j) = "SAC" Then
    count = count - 1
    GoTo NextIteration
End If
Next j
NextIteration:
Next i

Sheet2.Cells(1, 7) = count


End Sub

1 Ответ

0 голосов
/ 10 декабря 2018

Попробуйте это: -

    Option Explicit

        Sub DeleteSAC()

        Dim count As Integer
        Dim i As Integer
        Dim j As Integer
        Dim ws1 As Worksheet
        Dim ws2 As Worksheet
        Dim lastRow As Long
        Dim lastcolumn As Long

        Set ws1 = Worksheets("Sheet1")
        Set ws2 = Worksheets("Sheet2")


        lastRow = ws1.Cells(Rows.count, "B").End(xlUp).Row

        lastcolumn = ws1.Cells(1, Columns.count).End(xlToLeft).Column

        count = ws2.Cells(1, 7).Value
        i = 2
        j = lastcolumn


        For i = 2 To lastRow
        For j = lastcolumn To 1 Step -1


        If ws1.Cells(i, j) = "SAC" Then
            count = count - 1
Exit for
            End If


        Next j
        Next i

        ws2.Cells(1, 7) = count


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