VBA一键汇总多个工作簿

您所在的位置:网站首页 多个工作簿的多个工作表怎么合到一起 VBA一键汇总多个工作簿

VBA一键汇总多个工作簿

#VBA一键汇总多个工作簿| 来源: 网络整理| 查看: 265

VBA一键汇总多个工作簿-名称相同的工作表-的指定区域数据

日常工作,我们经常需要汇总相同格式的工作簿的某个工作表的数据

如1月业绩、2月业绩。。。。12月业绩等

姓名数量数据2222数据2323数据2424数据2525数据2626数据2727数据2828数据2929数据3030数据3131数据3232数据3333数据3434数据3535数据3636数据3737数据3838数据3939数据4040

VBA汇总后变成这样:

 啥也不说了,直接拿代码去用

Dim 所有工作簿列表 As FileDialogSelectedItems Private Sub 提取数据按钮_Click(sender As Object, e As EventArgs) Handles 提取数据按钮.Click Dim dic As Object = CreateObject("scripting.dictionary") Dim wb As Excel.Workbook Dim sht As Excel.Worksheet Dim j As Long With App.FileDialog(Microsoft.Office.Core.MsoFileDialogType.msoFileDialogFilePicker) .AllowMultiSelect = True .Title = "可选择多个工作簿" If .Show() = -1 Then 所有工作簿列表 = .SelectedItems '记录所有工作簿,防止二次选择工作簿 For Each 工作簿路径 As String In .SelectedItems wb = App.Workbooks.Open(工作簿路径) For Each sht In wb.Worksheets dic(sht.Name) = "" Next wb.Close(False) Next '将所有表名加载 For Each 表名 In dic.keys ComboBox2.Items.Add(表名) '适合汇总同工作表名称的汇总 Next End If End With End Sub Private Sub 汇总数据按钮_Click(sender As Object, e As EventArgs) Handles 汇总数据按钮.Click Dim wb As Excel.Workbook Dim sht As Excel.Worksheet Dim j As Long Dim 开始输出单元格 As Excel.Range = App.InputBox("请选择开始输出单元格", Type:=8) Dim 输出表 As Excel.Worksheet = App.ActiveSheet For Each 工作簿路径 As String In 所有工作簿列表 wb = App.Workbooks.Open(工作簿路径) For Each sht In wb.Worksheets If sht.Name = ComboBox2.Text Then Dim lastrow As Long = 输出表.Cells(输出表.Rows.Count, 开始输出单元格.Column).end(Microsoft.Office.Interop.Excel.XlDirection.xlUp).row + 1 '最后一行 sht.Range(ComboBox3.Text).Copy(输出表.Cells(lastrow, 开始输出单元格.Column)) '尽量不要整列,否则可能出错 End If Next wb.Close(False) Next End Sub Private Sub 选择单元格按钮_Click(sender As Object, e As EventArgs) Handles 选择单元格按钮.Click ComboBox3.Text = App.InputBox("请选择汇总区域", Type:=8).address End Sub

我的窗体界面是这样的

 

希望大家多多支持!谢谢



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3