Другие языки программирования и технологии

помогите решить в 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
АШ
Алексей Шаурин
63 669
Лучший ответ
А массивы где - на форме, на листе екселя или как?
Мурат Нуржанов
Мурат Нуржанов
34 701