помогите решить в VBA, пожалуйста)
Из двух массивов а ( 9) и b(14) получить новый массив с, состоящий из элементов исходных массивов, модуль
которых меньше 5. Полученный массив расположить в порядке возрастаний.
Из двух массивов а ( 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
А массивы где - на форме, на листе екселя или как?