Я довольно новый программист-самоучка, и я надеюсь учиться у всех вас.
Здесь я хотел бы поместить столбцы A Excel в массив и сформировать комбинацию из трех столбцов. Код написан и работает, однако, с очень низкой скоростью.
Если я поставлю Array (1,2,3 ..., 9,10), это сработает. Однако, если я определю
Dim nums (): nums = Array (Range ("A1: A5"). Value) не работает.
Даже если я поставлю Array (1,2,3 ..., 9,10), код работает очень медленно.
Следующее необходимо, потому что оно будет использоваться, когда мой массив станет длинным. Действительно, мой массив получит более 2 тысяч комбинаций. (Значения столбца A изменятся).
For x = 0 To 60
For y = 0 To 2
Cells(x + 1, y + 2).Value2 = arValues(x, y)
Next
Next
Весь мой код ниже,
Sub AllCombinations()
Dim nums(): nums = Array(Range("A1:A5").Value)
Dim arValues(999999, 5)
Dim n1 As Integer, n2 As Integer, n3 As Integer, n4 As Integer, n5 As Integer, n6 As Integer, x As Long
Dim y As Integer
For n1 = 0 To UBound(nums)
For n2 = n1 + 1 To UBound(nums)
For n3 = n2 + 1 To UBound(nums)
arValues(x, 0) = nums(n1)
arValues(x, 1) = nums(n2)
arValues(x, 2) = nums(n3)
x = x + 1
Next
Next
Next
For x = 0 To 60
For y = 0 To 2
Cells(x + 1, y + 2).Value2 = arValues(x, y)
Next
Next
For x = 61 To 120
For y = 0 To 2
Cells(x - 60, y + 6).Value2 = arValues(x, y)
Next
Next
End Sub