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