Просто перейдите на другой лист и снова запустите CopyFromRecordset
, чтобы скопировать оставшиеся строки, как этот фрагмент:
' A quick Cartesian product to get a recordset with over 1 million rows
' The two columns referenced are called A and B; both have over 1024 rows
' cn is the connection and rs is the recordset
rs.Open "SELECT [Sheet1$].[A], [Sheet2$].[B] FROM [Sheet1$], [Sheet2$];", cn
' Output the field names and the results
Dim fld As Object
Dim i As Integer
' Output the first 1048575 rows
With Worksheets("Sheet3")
.UsedRange.ClearContents
i = 0
For Each fld In rs.Fields
i = i + 1
.Cells(1, i).Value = fld.Name
Next fld
.Cells(2, 1).CopyFromRecordset rs
End With
' Output any remaining rows
If Not rs.EOF Then
With Worksheets("Sheet4")
.UsedRange.ClearContents
i = 0
For Each fld In rs.Fields
i = i + 1
.Cells(1, i).Value = fld.Name
Next fld
.Cells(2, 1).CopyFromRecordset rs
End With
End If
Вы можете расширить это до еще большего количества листов, зацикливаясь и проверяя rs.EOF
каждый раз , Это было больше проблемой в Excel 97-2003, когда на листе было только 65K строк