Согласно моему комментарию:
Чтобы избавиться от ошибки компиляции, вам нужно изменить Exit For
на Next
, чтобы создать фактическую итерацию, тогда как Exit For
- это просто выражение в пределах l oop до Выход l oop. Здесь - это MS-документация по циклам For...Next
.
Однако вы также используете Do Until...Loop
. Как я вижу в вашем коде, исправление вышеизложенного немедленно привело бы к бесконечному l oop, поскольку ни одна переменная (ни k
, ни coverage
) не была настроена. Поэтому я бы предложил включить в ваш For...Next
l oop оператор IF
. Например, вот так:
For k = 1 To count
If k - Coverage > 0 Then
Exit For
Else
x = k
y = Coverage - x
s = Sales(k) + s
End If
Next
Я не проверил остальную часть вашего кода, чтобы убедиться, что это действительно то, что вам нужно.
Small sidenote: использование Integer
переменных типа данных может укусить вас только в одном месте. Вместо этого используйте Long
.