excel将大表分解成小表,将小表合成一个大表

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执行即可。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值