Как исправить ошибку «Next with no For», отправленную в Excel vba - PullRequest
0 голосов
/ 09 мая 2019

Я настраиваю автоматический календарь, который должен рисовать имя из varName (), когда в календаре появляется соответствующая дата в varDate () (Fday - это календарная дата). Я получаю сбивающее с толку сообщение об ошибке «Далее без For» в цикле.

Цель состоит в том, чтобы иметь динамический массив для имени (varName) и даты (varName), где имя может быть отображено в календарный день с соответствующей датой. Мне удалось нарисовать имя в календаре в соответствии с соответствующей датой, используя статический массив, однако, когда я использую динамические массивы, это вызывает у меня проблемы.

stRow = Row with calendar date
stCol = Column with calendar date
nameRow = Row containing persons name (below calendar date)

    For i = LBound(varDate) To UBound(varDate)
      If Cells(stRow + 1, stCol) = Empty Then
       nameRow = stRow + 1
       If Fday = varDate(i) Then
        csheet.Cells(nameRow, stCol) = varName(i)
       End If
   Else
     nameRow = nameRow + 1  
     If Fday = varDate(i + 1) Then
       csheet.Cells(nameRow, stCol) = varName(i + 1)
     End If
    Next i

Ответы [ 2 ]

5 голосов
/ 09 мая 2019

Вы должны сделать отступ для своего кода ... чтобы избежать этой ошибки:

stRow = Row with calendar date
stCol = Column with calendar date
nameRow = Row containing persons name (below calendar date)

For i = LBound(varDate) To UBound(varDate)
    If Cells(stRow + 1, stCol) = Empty Then
        nameRow = stRow + 1
        If Fday = varDate(i) Then
            csheet.Cells(nameRow, stCol) = varName(i)
        End If
    Else
        nameRow = nameRow + 1
        If Fday = varDate(i + 1) Then
            csheet.Cells(nameRow, stCol) = varName(i + 1)
        End If 'you missed this one
    End If
Next i
0 голосов
/ 09 мая 2019

Всякий раз, когда у меня появляется эта ошибка, это означает, что я где-то пропускаю 'End If'.Excel считает, что оператор Next находится внутри блока IF, потому что он не нашел End If, но в этом блоке IF нет For!

Так вот почему вы получаете ошибку.

Дамиан определил, куда должен пойти отсутствующий End If, и вставил его обратно. Он прав, что правильный абзац делает эти ошибки очень легко обнаружить.

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