工作中拿到一个大表格 Excel 文件,要求每 XX 行拆分为一个小的 Excel 文件进行分发。
方法很多,最简单还是用 Excel 自带的VBA模块来解决!
示例文件 20.xlsx 如下,存有20条ID记录:
按 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条;
按 F5 执行代码:
在20.xlsx 文件所在文件夹即可看到已经拆分好的文件:
任意打开一个,
正是我们想要的结果,标题行也保留了!
閱讀更多 你永遠得不到的小老弟 的文章