• Помогите пожалуйста! Язык VBA. Не могу задать замену окончательной суммы.
    Задача:
    Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 100 включительно. Опишите на VBA алгоритм, который находит сумму элементов массива меньших 80 и при этом, кратных 5, а затем заменяет каждый такой элемент на число, равное найденной сумме. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести измененный массив, каждый элемент выводится с новой строчки. Например, для исходного массива из шести элементов:
    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) < 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

    question img

Ответы 4

  • И еще на будущее совет. Вставляете в проекте макрос на тот же лист, с которым работаете по вводу и выводу. Тогда не надо будет указывать Sheets("Лист1"). А сразу от Cells начинать.
    • Автор:

      avery
    • 5 лет назад
    • 0
  • Большое спасибо!
    • Автор:

      ziggy67
    • 5 лет назад
    • 0
  • пожалуйста
  • 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) < 80 And a(i) Mod 5 = 0 Then            Sum = Sum + a(i)        End If    Next i    For i = 1 To n        If a(i) < 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 iEnd Sub
    • Автор:

      juanyohz
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years