2016-07-25 60 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。