Помогите решить в VBA, пожалуйста

01.01.2001

помогите решить в VBA, пожалуйста
Из двух массивов а ( 9) и b(14) получить новый массив с, состоящий из элементов исходных массивов, модуль
которых меньше 5. Полученный массив расположить в порядке возрастаний.

  • Пусть массивы находятся в таблице Экселя, а на 1 строке, b на 2.
    Новый массив пишем в 3 строку
    Dim i As Integer, j As Integer, k As Integer
    Dim Q As Double, Flag As Boolean
    Rem k - это счетчик элементов в выходном массиве.
    k = 0

    Rem Выбираем нужные элементы из массива а
    For i = 1 To 9
    If Abs(Cells(1, i)) < 5 Then
    k = k + 1
    Cells(3, k) = Cells(1, i)
    End If
    Next i

    Rem Выбираем нужные элементы из массива b
    For i = 1 To 14
    If Abs(Cells(2, i)) < 5 Then
    k = k + 1
    Cells(3, k) = Cells(2, i)
    End If
    Next i

    Rem Сортируем выходной массив по возрастанию пузырьком
    Do
    Flag = False
    Rem Flag - это признак, что массив еще не отсортирован

    For i = 1 To k-1
    For j = i+1 To k

    If Cells(3, i) > Cells(3, j) Then
    Q = Cells(3, i): Cells(3, i) = Cells(3, j): Cells(3, j) = Q: Flag = True
    End if

    Next j
    Next i

    Loop While Flag = True
    Rem Если Flag окажется True, то возвращаемся на цикл.
    Rem Если Flag останется False, то ни одной замены не было
    Rem произведено, значит массив полностью отсортирован.
    End Sub

  • А массивы где - на форме, на листе екселя или как?

Вас заинтересует