Может быть, этот пример поможет.Я использую меньший массив из 105 элементов и перемещаю 10 строк за раз, так что получается 10 листов с 10 строками и 1 лист с 5 строками.Вам не нужно заполнять свой массив, так как он у вас уже есть.Миллионы строк парализуют мою систему работы.Удачи ...
Редактировать: обновлено для 2D-массива.
Sub x()
Dim v(1 To 105, 1 To 2), i As Long, j As Long, ws As Worksheet, n As Long
n = 10 'number of rows transferred to each sheet
For i = LBound(v, 1) To UBound(v, 1) 'populating array just for this example
v(i, 1) = i
v(i, 2) = i * i
Next i
Do
If UBound(v, 1) - j <= n Then n = UBound(v, 1) - j
Set ws = Worksheets.Add
ws.Range("A1").Resize(n, 2).Value = Application.Index(v, Evaluate("row(" & j + 1 & ":" & n + j & ")"), Array(1, 2))
j = j + n
If j >= UBound(v, 1) Then Exit Sub
Loop
End Sub