此代码只适用微软的Office Excel软件,WPS软件没有测试,而且WPS宏代码是收费功能。
在Excel菜单点击【开发工具】-【查看代码】进入VBA代码编写界面,然后点击【插入】-【模块】,把下面的代码复制到代码编写区域内,然后保存。在点击代码界面上边的绿色小箭头运行代码就可以进行拆分表格了。
Sub ZheFenSheet()
Dim r, c, i, WJhangshu, WJshu, bt As Long
r = Range("A" & Rows.Count).End(xlUp).Row
b = InputBox("请输入分表行数")
If IsNumeric(b) Then
WJhangshu = Int(b)
Else
MsgBox "输入错误", vbOKOnly, "错误"
End
End If
c = Cells(1, Columns.Count).End(xlToLeft).Column
bt = 1 '标题行数
'WJhangshu = 50 '每个文件的行数
WJshu = IIf(r - bt Mod WJhangshu, Int((r - bt) / WJhangshu), Int((r - bt) / WJhangshu) + 1)
'------
Set fs = CreateObject("Scripting.FileSystemObject") '
For i = 0 To WJshu
Workbooks.Add
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(i + 1, String(Len(WJshu), 0)) & "." & fs.GetExtensionname(ThisWorkbook.FullName) '扩展名
Application.DisplayAlerts = True
ThisWorkbook.ActiveSheet.Range("A1").Resize(bt, c).Copy ActiveSheet.Range("A1")
ThisWorkbook.ActiveSheet.Range("A" & bt + i * WJhangshu + 1).Resize(WJhangshu, c).Copy _
ActiveSheet.Range("A" & bt + 1)
ActiveWorkbook.Close True
Next
End Sub
最终,表格内数据按行数被拆分为多个文件。
Excel自动编号,并进行补0的公式:REPT(0,8-LEN(ROW()-1))&ROW()-1