Нужно из одномерного массива создать двумерный, четные числа поместить в один столбец, нечетные в другой, вывести оба массива на экран на лист Excel с помощью кнопки.
Буду очень признателен !!! [vba]
Код
Sub CommandButton1_Click() Dim K() As Integer Dim L() As Integer Dim M() As Integer Dim i Dim o Dim e Dim r As Integer Title = "Заполнение одномерного массива" N = InputBox("Количество элементов в одномерном массиве", Title) Randomize ReDim K(N) i = 0 For i = 0 To N - 1 K(i) = Rnd * 10 Cells(i + 1, 1).Value = K(i) Next i
For i = 1 To N If K(i) Mod 2 = 0 Then e = e + 1: ReDim Preserve L(e): L(e) = K(i) Else o = o + 1: ReDim Preserve M(o): M(o) = K(i) End If Next
For i = 0 To e - 1 For o = 0 To N - 1 Cells(i + 1, o + 3).Value = L(i, o) Next Next End Sub
[/vba]
Помогите, пожалуйста, отредактировать код!!
Нужно из одномерного массива создать двумерный, четные числа поместить в один столбец, нечетные в другой, вывести оба массива на экран на лист Excel с помощью кнопки.
Буду очень признателен !!! [vba]
Код
Sub CommandButton1_Click() Dim K() As Integer Dim L() As Integer Dim M() As Integer Dim i Dim o Dim e Dim r As Integer Title = "Заполнение одномерного массива" N = InputBox("Количество элементов в одномерном массиве", Title) Randomize ReDim K(N) i = 0 For i = 0 To N - 1 K(i) = Rnd * 10 Cells(i + 1, 1).Value = K(i) Next i
For i = 1 To N If K(i) Mod 2 = 0 Then e = e + 1: ReDim Preserve L(e): L(e) = K(i) Else o = o + 1: ReDim Preserve M(o): M(o) = K(i) End If Next
For i = 0 To e - 1 For o = 0 To N - 1 Cells(i + 1, o + 3).Value = L(i, o) Next Next End Sub
Sub CommandButton1_Click() Dim K() As Integer Dim L() As Integer Dim M() As Integer Dim i Dim o Dim e Dim r As Integer Title = "Заполнение одномерного массива" N = InputBox("Количество элементов в одномерном массиве", Title) Randomize ReDim K(N) i = 0 For i = 0 To N - 1 K(i) = Rnd * 10 If K(i) Mod 2 = 0 Then ReDim Preserve L(e): L(e) = K(i): e = e + 1 Else ReDim Preserve M(o): M(o) = K(i): o = o + 1 End If Next i Cells(1, 1).Resize(N).Value = Application.Transpose(K) Cells(1, 2).Resize(UBound(L) + 1).Value = Application.Transpose(L) Cells(1, 3).Resize(UBound(M) + 1).Value = Application.Transpose(M) End Sub
[/vba]
как-то так [vba]
Код
Sub CommandButton1_Click() Dim K() As Integer Dim L() As Integer Dim M() As Integer Dim i Dim o Dim e Dim r As Integer Title = "Заполнение одномерного массива" N = InputBox("Количество элементов в одномерном массиве", Title) Randomize ReDim K(N) i = 0 For i = 0 To N - 1 K(i) = Rnd * 10 If K(i) Mod 2 = 0 Then ReDim Preserve L(e): L(e) = K(i): e = e + 1 Else ReDim Preserve M(o): M(o) = K(i): o = o + 1 End If Next i Cells(1, 1).Resize(N).Value = Application.Transpose(K) Cells(1, 2).Resize(UBound(L) + 1).Value = Application.Transpose(L) Cells(1, 3).Resize(UBound(M) + 1).Value = Application.Transpose(M) End Sub