pandas excel有多个工作表_Excel通用一键汇总指定文件夹里的多个工作表

给大家分享一个EXCEL一键汇总的小方法。通过VBA实现,按键可以放到工具栏。网上能找到许多类似汇总代码,如果不懂得话不太敢用,因为工作中用的比较多就完善了一下,通用性考虑得更多些,现在分享给大家。

在这之前先明确两个名词 “工作表”和“工作簿”,工作表这里指的是EXCEL文件,工作簿指的是工作表里的sheet1,sheet2之类的。

bbeb6ea95d1ab19cb53892d33790ea20.png

工作簿

97a7d5800d4bd8bdd9a6dbe6dfe52ca6.png

工作表

因为有的地方这两个是反过来的。

先看一下汇总效果

da0317179dc692a5cee737f3d26ed3de.gif

一键汇总“各村”文件夹里的Excel文件

然后是EXCEL设置

第一步:宏设置

c4d0982ea7159ab697fcd8cc21343331.gif

第二步:快捷键设置

dbff4e2ca9f6ca5ae9bde66fe8b81a4b.gif

TXT中的就是汇总代码,注意步骤不能漏。

代码如下:

Sub 工作表__总表()

Dim wb, wb1 As Workbook

Dim fso, ff, f As Object

Dim p As String

Dim a, b, c As Long

Dim d, e

Set wb1 = ActiveWorkbook

With Application.FileDialog(msoFileDialogFolderPicker)

.InitialFileName = ActiveWorkbook.Path

.Title = "请指定要汇总的文件夹"

If .Show = -1 Then

p = .SelectedItems(1)

Else

Exit Sub

End If

End With

c = Val(InputBox("请输入表头行数"))

If c = 0 Then

Exit Sub

End If

d = Timer

Application.ScreenUpdating = False

wb1.Sheets(1).Rows().ClearContents '清空目标表第一个工作簿

Set fso = CreateObject("scripting.filesystemobject")

Set ff = fso.getfolder(p)

For Each f In ff.Files '对指定文件夹循环每个文件

If Split(f.Name, ".")(UBound(Split(f.Name, "."))) Like "*xls*" Then '判断是不是Excel文件

Set wb = GetObject(f.Path)

If wb.Sheets(1).AutoFilterMode = True Then

wb.Sheets(1).Range("a" & 1 & ":z" & 65536).AutoFilter

End If

If wb1.Sheets(1).Cells(1, 1).Value = "" Then

wb.Sheets(1).UsedRange.Copy wb1.Sheets(1).Cells(1, 1)

'

Else

a = wb1.Sheets(1).Cells(65535, 1).End(xlUp).Row 'wb1目标工作表

b = wb.Sheets(1).Cells(65535, 1).End(xlUp).Row

wb.Sheets(1).Rows(c + 1 & ":" & b).Copy wb1.Sheets(1).Cells(a + 1, 1)

'

End If

wb.Close savechanges:=False

Set wb = Nothing

End If

Next

e = Timer - d

MsgBox "汇总成功,用时" & e & "秒"

Application.ScreenUpdating = True

End Sub

有些要注意的地方:1、要汇总的Excel文件都放到同一个文件夹里面,每个文件格式要一致,就是说表头要一致。2、每个表的最后一行数据的第一列不能为空,不然这行数据会统计不到。3、汇总文件放文件夹外面。

这次就到这,回头把总表按指定列分发工作表的代码发出来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值