Помогите пожалуйста! Язык VBA. Не могу задать замену конечной суммы.Задачка:Дан

Помогите пожалуйста! Язык VBA. Не могу задать подмену конечной суммы.
Задача:
Дан целочисленный массив из 30 частей. Элементы массива могут принимать целые значения от 0 до 100 включительно. Опишите на VBA алгоритм, который обретает сумму частей массива наименьших 80 и при этом, кратных 5, а потом сменяет каждый таковой элемент на число, одинаковое найденной сумме. Гарантируется, что желая бы один таковой элемент в массиве есть. В качестве результата необходимо вывести модифицированный массив, каждый элемент выводится с новой строки. Например, для начального массива из 6 элементов:
14
15
27
20
95
4
программка обязана вывести следующий массив
14
35
27
35
95
4

Sub program()
Dim a(1 To 30) As Integer, i As Integer, Sum As Integer

For i = 1 To 30
a(i) = Int(100 * Rnd)
Sheets("Лист1").Cells(i, 1) = a(i)
Next i

Sum = 0
For i = 1 To 30
If a(i) lt; 80 And a(i) Mod 5 = 0 Then
Sum = Sum + a(i)
a(i) = Sum
End If
Sheets("Лист1").Cells(i, 2) = a(i)
Next i

Sheets("Лист1").Cells(1, 3) = Sum
End Sub

Задать свой вопрос
Кирилл Кудылев
Спасибо!
1 ответ
Sub program()
    Const n = 30
    Dim a(1 To 30) As Integer, i As Integer, Sum As Integer
    For i = 1 To n
        a(i) = Int(100 * Rnd)
        Sheets("Лист1").Cells(i, 1) = a(i)
    Next i
    Sum = 0
    For i = 1 To n
        If a(i) lt; 80 And a(i) Mod 5 = 0 Then
            Sum = Sum + a(i)
        End If
    Next i
    For i = 1 To n
        If a(i) lt; 80 And a(i) Mod 5 = 0 Then
            Sheets("Лист1").Cells(i, 2) = Sum
        Else
            Sheets("Лист1").Cells(i, 2) = a(i)
        End If
    Next i
End Sub

Подзолкова Людмила
Огромное спасибо!
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт