1.将一个十几几万行的表分解成小表
请用微软的excel 不要用wps
用excel打开改文件,按alt+f11,选择你要分解的主表
界面如图:
输入下面的代码
Sub cfb()
Dim r, c, i, WJhangshu, WJshu, bt As Long
r = Range("A" & Rows.Count).End(xlUp).Row
c = Cells(1, Columns.Count).End(xlToLeft).Column
bt = 1 'title
WJhangshu = 250 'num
WJshu = IIf(r - bt Mod 20000, Int((r - bt) / WJhangshu), Int((r - bt) / WJhangshu) + 1)
For i = 0 To WJshu
Workbooks.Add
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(i, String(Len(WJshu), 0)) & ".xlsx"
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
这里是分解成250行的小表,各位可以根据自己的需求来改数字
1.1 然后保存,关闭界面,然后按alt+f8 执行即可以。
2.将多个工作表合成一个大的工作表
方法同上:
输入如下代码
Sub 合并当前工作簿下的所有工作表()
Dim ws As Worksheet
Dim sh As Worksheet, i%
On Error Resume Next '如遇错误继续运行
Application.ScreenUpdating = False '关闭屏幕刷新
Application.DisplayAlerts = False '禁用警告提示
Worksheets("汇总").Delete '删除原汇总表
Set ws = Worksheets.Add(before:=Sheets(1)) '新建工作表
ws.Name = "汇总" '新建工作表命名为汇总
For Each sh In Sheets: '遍历所有工作表
If sh.Name <> "汇总" Then '判断工作表是否为汇总表
i = ws.Range("A" & Rows.Count).End(xlUp).Row + 1 '获取汇总表中A列数据区域最后一行的行号+1
sh.UsedRange.Copy '复制分表中的数据
ws.Cells(i, 1).PasteSpecial Paste:=xlPasteAll '粘贴数据
ws.Cells(i, 1).PasteSpecial Paste:=xlPasteColumnWidths '粘贴列宽
End If
Next
Application.DisplayAlerts = True '恢复警告提示
Application.ScreenUpdating = True '开启屏幕刷新
MsgBox "工作表合并完毕"
End Sub
保存后,按alt+f8执行即可。