通过VBA将Excel表格按行数拆分为多个文件
最近有个Excel文件需要按行数拆分为多个文件,由于数据量太大手动拆分不太现实,通过Copilot获取到了使用VBA宏快速将Excel中的数据每n行分成一个新表,并保留原表的表头的VBA脚本。
- 打开Excel文件,按 Alt + F11 打开VBA编辑器。
- 在VBA编辑器中,插入一个新模块 (Insert > Module)。
- 将以下代码粘贴到模块中:
Sub SplitIntoSheetsByRows()
Dim ws As Worksheet
Dim newWs As Worksheet
Dim lastRow As Long
Dim rowStep As Long
Dim i As Long
Dim header As Range
Set ws = ThisWorkbook.Sheets("Sheet1") ' 修改为你的工作表名称
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
rowStep = 5000 ' 修改为行数
Set header = ws.Rows(1)
For i = 2 To lastRow Step rowStep
Set newWs = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
header.Copy Destination:=newWs.Rows(1)
ws.Range(ws.Cells(i, 1), ws.Cells(Application.Min(i + rowStep - 1, lastRow), ws.Columns.Count)).Copy Destination:=newWs.Rows(2)
newWs.Name = "Part " & (i - 1) & " to " & Application.Min(i + rowStep - 1, lastRow)
Next i
End Sub
- 关闭VBA编辑器,返回Excel。按 Alt + F8,选择 SplitIntoSheets,然后点击“运行”。
暂无标签