EXCEL如何使用VBA汇总当前路径下的工作簿的相应的工作表

来自:    更新日期:早些时候
~ 一个论坛上的会员有如下的要求:如图需要把当前路径中的财务、采购、工厂、计划、人士等工作簿的“出勤明细”工作表的记录复制汇总在“加班汇总表”工作簿中的“加班原因汇总”工作表中,并需要取出各部门的名称,希望批量使用VBA完成?很久没有玩VBA了,今晚手痒,写了这样一个程序:
A:ALT+F11>>>插入模块>>>模块中输入以下代码:
EXCEL如何使用VBA汇总当前路径下的工作簿的相应的工作表?
Sub test()
Dim WB As Workbook, WS As Worksheet, FN$, Rng As Range, k As Long
Application.ScreenUpdating = False
FN = Dir(ThisWorkbook.Path & "\*.xls*")
Application.AutomationSecurity = msoAutomationSecurityForceDisable
Do While FN > ""
If FN > ThisWorkbook.Name Then
Set WB = GetObject(ThisWorkbook.Path & "" & FN)
With WB
For Each WS In .Worksheets
If WS.Name Like "*出勤明细*" Then
With WS
i = .Cells(Rows.Count, 2).End(xlUp).Row
.Range("A2:D" & i).Copy
Set Rng = ThisWorkbook.Worksheets("加班原因汇总").Cells(ThisWorkbook.Worksheets("加班原因汇总").Rows.Count, 2).End(xlUp).Offset(1, 0)
With Rng
.PasteSpecial xlPasteFormats
.PasteSpecial xlPasteAll
End With
ThisWorkbook.Worksheets("加班原因汇总").Cells(ThisWorkbook.Worksheets("加班原因汇总").Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(i – 1, 1) = Left(WB.Name, Len(WB.Name) – 4)
Application.CutCopyMode = False
End With
End If
Next WS
End With
WB.Close False
End If
FN = Dir
Loop
Application.AutomationSecurity = msoAutomationSecurityByUI
End Sub


EXCEL如何使用VBA汇总当前路径下的工作簿的相应的工作表视频

相关评论:
  • 13646883776excel如何汇总工作表?
    尹谈居操作步骤:打开一个Excel文件,单击【超级处理器】-【数据合并】-【合并工作簿】,打开对话框,单击【浏览】,找到需要合并的所有文件,全选,单击【打开】,在对话框中,勾选【全选】,单击【确定】即可完成,如下图:除了以上操作方法,还可以用VBA代码完成,如果Excel支持PowerQuery,也可以使用Power...

  • 13646883776VBA汇总统一文件夹下的多个表格的数据?
    尹谈居本讲的内容是事先不知道每个文件的名称。实例:在一个文件夹下有若干个文件,如下图:我们现在,需要把上面的文件夹中除了“VBA与数据库操作”之外的各个文件的内容一次性汇总出来,这个VBA程序该如何写呢?代码如下:Sub mynzexcels_6()'第37讲,利用ADO,实现同一文件夹下EXCEL工作表数据的汇总 Dim...

  • 13646883776如何使用vba将多个相同表格汇总求和?
    尹谈居这个问题可以使用字典和数组两种编程方式,字典的程序简单一点,数组运行效率更高一点点,但是逻辑稍微复杂一点,下面是数组的写法:sub 宏1()dim arr,arr2,n,i,j,k,t,i2 n=0'计算总行数 for each t in array("a","b","c")n=n+sheets("汇总" & t).usedrange.rows.count next t re...

  • 13646883776在excel中如何使用VBA宏代码快速把一个工作簿中不同工作表的固定单元格...
    尹谈居Sub main()Dim mySheet As Worksheet Dim tmpSheet As Worksheet Dim R As Integer, C As Integer R = 1 Set mySheet = ThisWorkbook.Worksheets.Add()mySheet.Name = "汇总"For Each tmpSheet In ThisWorkbook.Worksheets With tmpSheet If .Name <> "汇总" Then For C = 1 To 6 mySheet...

  • 13646883776EXCEL如何用VBA数据字典:除去重复后汇总
    尹谈居arr = Range("A1:C500") '假设最大行数为500,将A1至C500区域放入数组 For i = 1 To UBound(arr) '从1到数组最大行数循环 If arr(i, 1) <> "" And arr(i, 1) <> "装置" Then '提出空格和标题行 dic(arr(i, 1)) = dic(arr(i, 1)) + arr(i, 3) '用字典去除重复,...

  • 13646883776求VBA合并多个excel表格,并且分类汇总求和
    尹谈居你这个使用合并计算就可以完成了。打开合并计算,然后分别点击每一个表要计算的。数据范围添加进去。添加完这三个。计算的表之后点击确定就可以自动在另一个新表里面帮助你统计每一个人的数据。

  • 13646883776excel,自动将子工作表内的内容汇总到总表中,用VBA怎么写?
    尹谈居可以这么实现,在对应子工作表输入内容时,当最新一行输入完成后,自动更新数据到总览表中。代码放到两个子工作表里面即可。Private Sub Worksheet_Change(ByVal Target As Range)If Target.Count = 1 And Target.Column = 4 Then Sheets("总览").Range("A65536").End(xlUp).Offset(1, 0).Value ...

  • 13646883776在Excel如何用VBA做统计汇总
    尹谈居Sub 查找()Dim arr, dic As Object, i%, RangA As Range Set RangA = Range("g4", "i100")arr = RangA Set dic = CreateObject("Scripting.Dictionary")For i = 1 To UBound(arr)If dic.exists(arr(i, 2)) Then dic(arr(i, 2)) = dic.Item(arr(i, 2)) & "、" & arr(i...

  • 13646883776合并汇总excel怎么弄(excel重复名称合并汇总)
    尹谈居2. 使用专业的数据处理软件:市面上也有一些专业的数据处理软件,如Microsoft Power BI、Tableau等,它们提供了丰富的数据处理和分析功能,可以帮助我们高效地合并和汇总Excel文件中的数据。总结 合并汇总Excel文件是日常工作中常见的任务之一,通过Excel自带的功能、VBA宏以及第三方工具,我们可以选择适合自己...

  • 13646883776EXCEL中如何用VBA实现
    尹谈居方法\/步骤如下:1、双击打开桌面的EXCEL;2、单击右上角的OFFICE图标,找到EXCEL选项,单击打开;3、勾选在功能区显示“开发工具”选项卡,单击确定按钮完成修改。4、单击菜单栏的开发工具,然后找到Visual Basic单击打开便可以进行相关的VBA编程。

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网