美文网首页
如何将1个Excel工作簿的数据拆分成若干个工作簿

如何将1个Excel工作簿的数据拆分成若干个工作簿

作者: 一刀断桥 | 来源:发表于2018-09-28 01:22 被阅读0次

有时候一个Excel的数据会很多,需要拆分成若干个工作簿,比如把1个40万行的excel,按每个工作簿40000行,拆成10个;思路是先把原始文件复制10个,然后逐个打开,按顺序把多余的删除:

另一种方法是先分拆成多个工作表,然后再将工作表拆成独立的工作簿文件

Sub 拆分()

Workbooks.Open (ThisWorkbook.Path & "/原始.xlsx")  '打开原始文件

r = 1 '标题行有几行,一般就是数字1

b = 40000            '拆分后每个工作簿有多少数据

a = ActiveWorkbook.Worksheets(1).UsedRange.Rows.Count '原始文件有几行

ActiveWorkbook.Close

l = Int(a / b) + 1      'l表示可以拆分成几个文件

For i = 1 To l

FileCopy ThisWorkbook.Path & "/原始.xlsx", ThisWorkbook.Path & "/" & i & ".xlsx"

Next i

'把文件复制成l份

Application.ScreenUpdating = False

fn = ThisWorkbook.Path & "/" & 1 & ".xlsx"    '将第1个要汇总的工作簿名称赋给变量fn

Workbooks.Open (fn)

With ActiveWorkbook.Worksheets(1)

    Rows(r + b + 1 & ":" & 1048576).Select

    Selection.Delete Shift:=xlUp

End With

ActiveWorkbook.Close savechanges:=True

'第1个文件比较特殊

For i = 2 To l

    fn = ThisWorkbook.Path & "/" & i & ".xlsx"

    Workbooks.Open (fn)

    With ActiveWorkbook.Worksheets(1)

        Rows(r + 1 & ":" & r + (i - 1) * b).Select

        Selection.Delete Shift:=xlUp

        Rows(r + b + 1 & ":" & 1048576).Select

        Selection.Delete Shift:=xlUp

    End With

    ActiveWorkbook.Close savechanges:=True

Next i

Application.ScreenUpdating = True

'从第2个文件开始把不需要的都删除

End Sub

相关文章

网友评论

      本文标题:如何将1个Excel工作簿的数据拆分成若干个工作簿

      本文链接:https://www.haomeiwen.com/subject/jdoeuttx.html