前不久好几位朋友都问到,如何将一个EXCEL文件里面很多条数据拆分成多个文件,比如一个EXCEL表里面有90万行数据,需要按照每1万行拆分成一个文件,也就是需要将这表里面的90万行数据拆分到90个文件里面。这个如果手工拆分,那工作量实在太大了。于是,我就想把这个过程拿出来分享一下。
下面我们就来看看如何用VBA来实现拆分工作。
首先,在EXCEL里面插入一个模块,代码如下:
Sub copybat()
Dim n As Integer
Dim i As Integer
Dim k As Integer
Dim path As String
Dim filename As String
path = "c:\拆分测试\" '预定义的存储路径
filename = "分割文件" '预定义的文件名
Application.ScreenUpdating = False
i = 10 '分页数据条目数
k = 0 '循环执行次数,用于标识文件顺序
For n = 1 To Cells(1, 1).End(xlDown).Row Step i '开始循环到数据表底部,步长为分页条目数
Range("A1:D1,A" & n + 1 & ":D" & 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 = False
End Sub
第二,在EXCEL工作表里面插入一个按钮,用于调用执行该以上模块。
第三,点击按钮执行代码。最后结果如下:
文件夹下生成的文件图例
分割的第小部分
分割的第2小部分
以上,是一个大体的过程,实际上还可以在此基础上实现更加复杂的逻辑,这就又各位独立发挥了。
领取专属 10元无门槛券
私享最新 技术干货