Excel分割成多个文件

2021-07-20  本文已影响0人  旻璿

一个几十万行的Excel,文件大小500M,普通电脑打不开,通过新建一个宏来解决。
方法:菜单:工具->宏->Visual Basic 编辑器->新建模块->将代码贴进去,点击执行按钮即可。
使用时,根据实际情况修改如下几个变量。
1、path,拆分后分成几个文件存在哪
2、i,每个文件存多少行数据
3、Range里的BS1、BS,改为实际表格的最后一列

参考文章:https://zhuanlan.zhihu.com/p/81580481?from_voters_page=true,略微修改。

Sub splitFile()
    Dim n As Long
    Dim i As Long
    Dim k As Long
    Dim path As String
    Dim filename As String
    path = "/Users/macos/Downloads/"     '预定义的存储路径
    filename = "分割文件"    '预定义的文件名
    Application.ScreenUpdating = False
    i = 100000                    '分页数据条目数
    k = 0                     '循环执行次数,用于标识文件顺序
    For n = 1 To Cells(1, 1).End(xlDown).Row Step i        '开始循环到数据表底部,步长为分页条目数
        Range("A1:BS1,A" & n + 1 & ":BS" & n + i).Select     '每次均选择复制固定的表头和本次循环内的数据行
        Selection.Copy
        Workbooks.Add   '新建工作簿
         Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False     '特殊粘贴:只粘贴数值
        k = k + 1
        ActiveWorkbook.SaveAs filename:=path & filename & k & ".xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False   '将文件按命名规则另存至指定位置
        ActiveWindow.Close     '关闭已经生成的文件
    Next n
    MsgBox "分割完毕!", vbDefaultButton1, "提示"
    Application.ScreenUpdating = True
End Sub
上一篇下一篇

猜你喜欢

热点阅读