2016-07-25 47 views
0

我有一個.all文件超過了excel強加的1048576行的限制。使用在excel中拆分文件以避免行限制

林驗證碼:

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 

但這碼長的文件,因爲這個限制doesent工作。我的想法是複製原始.all文件,然後將此副本分割成限制爲1048576行的文件,將這些分割的文件複製到單獨的工作表中,最後複製此副本。

我很新vba ...任何幫助編寫代碼?

非常感謝。

+0

創建一個新工作表,而不是創建一個新的Excel文件本身,因爲限制是在工作表上,而不是在Excel文件本身。 – pioneer

回答

0

您可以使用下面的代碼將文件拆分爲不同的部分。

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 

此外,如果Excel無法處理您的需求,我建議您考慮使用Access或SQL Server。

相關問題