ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 553|回复: 19

[求助] 简单汇总,需要修改一下代码!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-8-27 21:20 | 显示全部楼层 |阅读模式
Dim Wirtesht As Worksheet                                       
Set Wirtesht = ActiveSheet                                   
Dim Location As String, FileName As String                    
Location = "C:\Users\Administrator\Desktop\新建文件夹 (5)\8月\"
FileName = Dir(Location & "*.xlS")                             
Dim OpenBok As Workbook                                 
Do While FileName <> ""                                       
  Set OpenBok = Workbooks.Open(Location & FileName)
  With OpenBok.Sheets(1).UsedRange                              
      .Rows(4 & ":" & .Rows.Count).Copy Wirtesht.Range("A" & Wirtesht.Rows.Count).End(xlUp).Offset(1, 0)
  End With
  OpenBok.Close Savechanges = False
  FileName = Dir
Loop
End Sub

目前代码汇总的效果

目前代码汇总的效果

改完希望达到的效果

改完希望达到的效果

汇总.zip

17.78 KB, 下载次数: 10

TA的精华主题

TA的得分主题

发表于 2024-8-27 22:26 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这是要改什么

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-27 23:07 | 显示全部楼层

可能我表达的不够清晰,我原先汇总的表格是这样的(原帖的图一),然后我在图一的表格加了一列,A列,需要把下面的图一,红圈的内容,汇总到图二红圈的位置
需要汇总的内容.png
汇总到这个地方.png

TA的精华主题

TA的得分主题

发表于 2024-8-28 07:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
多表合并

附件供参考。。。

8月.zip

38.07 KB, 下载次数: 16

TA的精华主题

TA的得分主题

发表于 2024-8-28 07:55 | 显示全部楼层
参与一下。。。

  1. Sub ykcbf()   '//2024.8.28    多表合并
  2.     Application.ScreenUpdating = False
  3.     Set fso = CreateObject("Scripting.FileSystemObject")
  4.     p = ThisWorkbook.Path & ""
  5.     Set ws = ThisWorkbook
  6.     Set sh = ws.Sheets("Sheet1")
  7.     ReDim brr(1 To 10000, 1 To 100)
  8.     For Each f In fso.GetFolder(p).Files
  9.         If LCase(f.Name) Like "*.xls*" Then
  10.             If InStr(f, "~$") = 0 Then
  11.                 If InStr(f, ws.Name) = 0 Then
  12.                     fn = fso.GetBaseName(f)
  13.                     Set wb = Workbooks.Open(f, 0)
  14.                     With wb.Sheets(1)
  15.                         r = .Cells(Rows.Count, 1).End(3).Row
  16.                         c = .Cells(3, "XFD").End(1).Column
  17.                         arr = .[a1].Resize(r, c)
  18.                     End With
  19.                     wb.Close 0
  20.                     For i = 3 To UBound(arr)
  21.                         If arr(i, 1) <> Empty Then
  22.                             m = m + 1
  23.                             brr(m, 1) = fn
  24.                             For j = 1 To UBound(arr, 2)
  25.                                 brr(m, j + 1) = arr(i, j)
  26.                             Next
  27.                         End If
  28.                     Next
  29.                 End If
  30.             End If
  31.         End If
  32.     Next
  33.     With sh
  34.         .UsedRange.Offset(2).ClearContents
  35.         .[a3].Resize(m, c) = brr
  36.     End With
  37.     Application.ScreenUpdating = True
  38.     MsgBox "OK!"
  39. End Sub
复制代码


TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-28 08:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ykcbf1100 发表于 2024-8-28 07:54
多表合并

附件供参考。。。

又是大哥你指点帮忙!十分感谢!上次你帮忙弄的代码,还在消化中,也谢谢你!

TA的精华主题

TA的得分主题

发表于 2024-8-28 08:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
辉太狼-2014 发表于 2024-8-28 08:49
又是大哥你指点帮忙!十分感谢!上次你帮忙弄的代码,还在消化中,也谢谢你!

汇总表多了一列,原代码就需要修改一下。但是,原代码不是我喜欢的风格,所以就没改。

TA的精华主题

TA的得分主题

发表于 2024-8-28 09:35 | 显示全部楼层
Dim Wirtesht As Worksheet                                       
Set Wirtesht = ActiveSheet                                   
Dim Location As String, FileName As String                    
Location = "C:\Users\Administrator\Desktop\新建文件夹 (5)\8月\"
FileName = Dir(Location & "*.xlS")                             
Dim OpenBok As Workbook                                 
Do While FileName <> ""                                       
  Set OpenBok = Workbooks.Open(Location & FileName)
  With OpenBok.Sheets(1).UsedRange                              
      .Rows(4 & ":" & .Rows.Count).Copy Wirtesht.Range("B" & Wirtesht.Rows.Count).End(xlUp).Offset(1, 0)

      lr = .Range("a65536").End(xlUp).Row
      .Range("B2").Copy Wirtesht.Range("A" & Wirtesht.Rows.Count).End(xlUp).Offset(1, 0).Resize(lr - 3, 1)
  End With
  OpenBok.Close Savechanges = False
  FileName = Dir
Loop
End Sub

在你原代码修改一处并增加两句。

TA的精华主题

TA的得分主题

发表于 2024-8-28 10:05 | 显示全部楼层
Sub qs()
Dim fso As Object, folderPath As String, file As Object, wb As Workbook, xb As Workbook
Set wb = ThisWorkbook
myname = ThisWorkbook.Name
Set dic = CreateObject("scripting.dictionary")
ph = ThisWorkbook.Path
    Application.ScreenUpdating = False
    Set fso = CreateObject("Scripting.FileSystemObject")
    folderPath = ph
    If fso.FolderExists(folderPath) Then
        Set folder = fso.GetFolder(folderPath)
        For Each file In folder.Files
            If file.Name <> myname Then
            If LCase(fso.GetExtensionName(file.Name)) = "xlsx" Or _
               LCase(fso.GetExtensionName(file.Name)) = "xls" Then
                Set xb = Workbooks.Open(ph & "\" & file.Name, 0)
                arr = xb.Sheets(1).Range("a2").CurrentRegion.Value
                ar = xb.Sheets(1).Range("a4:h" & UBound(arr))
                xb.Close (0)
                rw = wb.Sheets(1).Cells(Rows.Count, "b").End(3).Row + 1
                wb.Sheets(1).Range("b" & rw).Resize(UBound(ar), UBound(ar, 2)) = ar
                wb.Sheets(1).Range("a" & rw).Resize(UBound(ar), 1) = arr(2, 2)
            End If
        End If
        Next file
    Else
        MsgBox "指定的文件夹不存在。"
    End If
    Set fso = Nothing: Set wb = Nothing
    Set folder = Nothing: Set xb = Nothing
    Application.ScreenUpdating = True
    MsgBox "完成!"
End Sub

TA的精华主题

TA的得分主题

发表于 2024-8-28 10:06 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 20:15 , Processed in 0.049276 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表