У меня есть код, который я использую для создания комбинаций Fantasy Sports в Excel, и он прекрасно работает до 32 000 строк.Когда я уточнил результаты в соответствии с этим, никаких проблем не возникало, но иногда я хотел комбинации для 50-100 тыс. Строк, и этого было бы недостаточно.
Итак, моя первоначальная мысль была, что у меня есть переменная с именем Integer, но я делаюЯ не вижу никого, и я действительно вне идей.
Ниже приведено изображение того, как оно выглядит, когда оно РАБОТАЕТ или «комбинируется»:
Нижеэто рисунок того, как он выглядит, когда он НЕ РАБОТАЕТ или «не объединяется»:
Массив, который я использую для рабочего: (выбранные ячейки, используемые столбцы)
И пока результаты работают под 32 000 строк, это работает, когда я делаю этот диапазон ячеек более похожим на группу из 100 ячеек, он показывает НЕ РАБОТАЮЩИЙрезультат.
Вот соответствующий код, который я использую:
Public result() As Variant
------
Function Combinations(rng As Range, n As Long)
rng1 = rng.Value
ReDim result(n - 1, 0)
Call Recursive(rng1, n, 1, 0)
ReDim Preserve result(UBound(result, 1), UBound(result, 2) - 1)
Combinations = Application.Transpose(result)
End Function
------
Function Recursive(r As Variant, c As Long, d As Long, e As Long)
Dim f As Long
For f = d To UBound(r, 1)
result(e, UBound(result, 2)) = r(f, 1)
If e = (c - 1) Then
ReDim Preserve result(UBound(result, 1), UBound(result, 2) + 1)
For g = 0 To UBound(result, 1)
result(g, UBound(result, 2)) = result(g, UBound(result, 2) - 1)
Next g
Else
Call Recursive(r, c, f + 1, e + 1)
End If
Next f
End Function
Если у кого-то есть идеи, как расширить его за пределы 32 000 строк, или если мне не хватает какой-то переменной, которая не позволяетэто держать больше данных, дайте мне знать.
Спасиботак очень!