DA
Diana Adamiya

помогите решить в 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

Александра
Александра

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

Похожие вопросы
Помогите с VBA, пожалуйста.
Помогите пожалуйста с VBA
Помогите решить задачу в VBA!прошу Вас!
Помогите пожалуйста решить задачу в VBA
помогите решить задачу по vba,пожалуйста...
Помогите решить задачу на VBA?!!!
Задача на vba. Помогите решить!
помогите решить задачи в VBA
Срочно помогите пожалуйста!!!! в VBA
помогите решить, пожалуйста) в VBA