使用VBA,轻松拆分 Excel 大数据

工作中拿到一个大表格 Excel 文件,要求每 XX 行拆分为一个小的 Excel 文件进行分发。

方法很多,最简单还是用 Excel 自带的VBA模块来解决!

使用VBA,轻松拆分 Excel 大数据

示例文件 20.xlsx 如下,存有20条ID记录:

使用VBA,轻松拆分 Excel 大数据

按 alt+F11,切换到VBA界面:

双击示例文件 20.xlsx 的sheet1,输入以下代码:

Sub sac()
Dim r, c, i, Each_Rows, jishu, bt As Long
r = Range("A" & Rows.Count).End(xlUp).Row
c = Cells(1, Columns.Count).End(xlToLeft).Column
bt = 1 'title
Each_Rows = 2 'num
jishu = IIf(r - bt Mod 20000, Int((r - bt) / Each_Rows), Int((r - bt) / Each_Rows) + 1)
For i = 0 To jishu
Workbooks.Add
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "" & Format(i, String(Len(jishu), 0)) & ".xlsx"
Application.DisplayAlerts = True
ThisWorkbook.ActiveSheet.Range("A1").Resize(bt, c).Copy ActiveSheet.Range("A1")
ThisWorkbook.ActiveSheet.Range("A" & bt + i * Each_Rows + 1).Resize(Each_Rows, c).Copy _
ActiveSheet.Range("A" & bt + 1)
ActiveWorkbook.Close True
Next
End Sub

注意 Each_Rows = 2 'num 指定的是计划每个文件存放的记录数,

此处为2,即20个记录,拆为10个文件,每个文件存放2条;

使用VBA,轻松拆分 Excel 大数据

按 F5 执行代码:

在20.xlsx 文件所在文件夹即可看到已经拆分好的文件:

使用VBA,轻松拆分 Excel 大数据

任意打开一个,

使用VBA,轻松拆分 Excel 大数据

正是我们想要的结果,标题行也保留了!

使用VBA,轻松拆分 Excel 大数据


分享到:


相關文章: