2016-07-25 13 views
0

Ich habe eine .all-Datei, die die Grenze von 1048576 Zeilen von Excel auferlegt überschreitet.Split-Datei in Excel zum Vermeiden von Zeilenlimit

Im mit diesem Code:

Sub open() 
book1 = ActiveWorkbook.Name 
file1 = Application.GetOpenFilename("ALL Files (*.all), *.all") 
Worksheets("res").Range("K1").Value = file1 
Workbooks.OpenText file1, origin:=xlWindows, startrow:=1, DataType:=xlTextFormat 
del = ActiveWorkbook.Name 
ActiveSheet.Copy before:=Workbooks(book1).Sheets(1) 
Workbooks(del).Close False 
Sheets(1).Activate 
ActiveSheet.Name = "acti" 
End Sub 

Aber diesen Code doesent Arbeit für lange Dateien, weil diese Grenze. Meine Idee ist, die ursprüngliche .all-Datei zu kopieren, dann diese Kopie in Dateien zu teilen, die auf 1048576 Zeilen beschränkt sind, jede dieser geteilten Dateien in ein einzelnes Blatt zu kopieren und diese Kopien schließlich zu revomieren.

Ich bin ziemlich neu in VBA ... irgendwelche Hilfe, um den Code zu schreiben?

Vielen Dank.

+0

Erstellen Sie ein neues Blatt, anstatt eine neue Excel-Datei selbst zu erstellen, da das Limit auf dem Blatt und nicht auf der Excel-Datei selbst liegt. – pioneer

Antwort

0

Sie können eine Datei in einzelne Teile unter Verwendung des folgenden Codes aufteilen.

Public Sub Split_wb() 

Dim i As Integer, arr As Variant, wb As Variant, ws_source As Worksheet 

Set ws_source = ActiveSheet 

For i = 1 To 5 
    arr = ws_source.Range("A" & i * 1000 - 999 & ":T" & i * 1000) 

    Set wb = Workbooks.Add 
    wb.Sheets(1).Range("A1").Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr 
    Set arr = Nothing 
Next 

End Sub 

Auch würde ich in mit Access oder SQL Server empfehlen, sich, wenn Excel nicht Ihre Anforderungen verarbeiten kann.