Из 3000 случайных чисел создать массив и вывести его на лист - VBA
Формулировка задачи:
Здравствуйте, мне нужно из 3000 случайных чисел создать массив и вывести его на лист. Потом из этих случайных чисел найти сумму 10 случайных чисел из этого массива 10тыс. раз, и опять таки занести все это на лист
Виснет цикл, и не отображается последний результат.
Листинг программы
- Sub Prog()
- Dim lArray() As Long
- Dim Arr() As Long
- Dim i As Long, j As Long
- Dim k As Long
- ReDim lArray(3000, 100)
- For i = 1 To 3000
- For j = 1 To 1
- Randomize
- lArray(i, j) = (9 * Rnd)
- Next
- Next
- For i = 1 To 3000
- For j = 1 To 1
- Worksheets(1).Cells(i, j).Value = lArray(i, j)
- Next
- Next
- ReDim Arr(10000, 1000)
- For i = 1 To 10000
- For j = 1 To 10
- For k = 1 To 10
- Randomize
- k = Worksheets(1).Cells((Rnd * 3000) + 1, 1)
- Worksheets(1).Cells(i, 3).Value = Application.WorksheetFunction.Sum(k)
- Next
- Next
- Next
- End Sub
Решение задачи: «Из 3000 случайных чисел создать массив и вывести его на лист»
textual
Листинг программы
- Sub Prog()
- Dim lArray() As Long
- Dim Arr() As Long
- Dim i As Long, j As Long
- Dim k As Long
- ReDim lArray(1 To 3000, 1 To 1)
- Randomize
- For i = 1 To 3000
- lArray(i, 1) = (9 * Rnd)
- Next
- Worksheets(1).Cells(1, 1).Resize(3000, 1) = lArray
- ReDim Arr(1 To 10000, 1 To 10)
- ReDim ArrSum(1 To 10000, 1 To 1)
- Randomize
- For i = 1 To 10000
- SumArr = 0
- For j = 1 To 10
- k = Rnd * 3000 + 1
- k = IIf(k > 3000, 3000, k)
- Arr(i, j) = lArray(k, 1)
- SumArr = SumArr + Arr(i, j)
- Next
- ArrSum(i, 1) = SumArr
- Next
- Worksheets(1).Cells(1, 3).Resize(10000, 10) = Arr
- Worksheets(1).Cells(1, 14).Resize(10000, 1) = ArrSum
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д