Почему Шаг (-1) дает мне ошибку приложения или объекта, но не шаг (-2) - PullRequest
0 голосов
/ 22 декабря 2018

Итак, у меня есть код, который зацикливается и считается 1, если есть определенный статус с соответствующей датой.Обычно формат выглядит следующим образом: статус, дата, статус, дата, статус, дата и т. Д.

Однако мой набор данных изменился и стал статусом, датой, персоной, статусом, датой, персоной,статус, дата, человек и т. д. *

Ранее я использовал шаг (-2) как, но теперь, когда я перехожу на шаг (-1) или даже шаг (-3), он дает мне приложение-определенная или объектно-определяемая ошибка.

Кто-нибудь может понять, почему это так?

Sub CheckDates()


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 = 0
i = 2
j = lastColumn

For i = 2 To lastrow
For j = lastColumn To 1 Step (-1)
If Sheet1.Cells(i, j) < Sheet2.Cells(1, 1) And Sheet1.Cells(i, j - 1) = "Reçu" Then
    count = count + 1
    GoTo NextIteration
End If
Next j
NextIteration:
Next i

Sheet2.Cells(1, 7) = count

Sheets(2).Select

Call DeleteSAC
'Runs the DeleteSAC Macro


End Sub

1 Ответ

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

Посмотрите на эту строку If Sheet1.Cells(i, j) < Sheet2.Cells(1, 1) And Sheet1.Cells(i, j - 1) = "Reçu" Then

, если j = 1, тогда j-1 будет 0, и вы получите ошибку (т. Е. Столбец 0 не существует)

с Step -2вы не получите ошибку, потому что (если я должен угадать) число столбцов четное, то есть последнее значение j будет 2. на следующей итерации j будет 0, а тело цикла вообще не будет выполнено, поэтому нетошибка.

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