网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月30日漏签0天
excel吧 关注:281,535贴子:1,552,482
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 5回复贴,共1页
<<返回excel吧
>0< 加载中...

求大神帮忙修改代码,支持汇总子文件夹

  • 只看楼主
  • 收藏

  • 回复
  • 诗殆韵
  • E见钟情
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Sub 按钮1_Click()
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show Then mypath = .SelectedItems(1) Else Exit Sub
End With
If Right(mypath, 1) <> "\" Then mypath = mypath & "\"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set sh = ThisWorkbook.Sheets(1)
sh.UsedRange.Offset(1).ClearContents
r = 2
For Each f In sh.subfolders("scripting.filesystemobject").getfolder(mypath).Files
With Workbooks.Open(f)
.Sheets(1).UsedRange.Offset(2).Copy sh.Cells(r, 1)
r = sh.Cells(Rows.Count, 1).End(3).Row + 1
.Close False
End With
Next f
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
目前这个代码只能支持当前文件夹的汇总,可以修改成支持子文件夹吗


  • 菠萝蜜
  • E览无余
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
最好上个附件到百度网盘


2025-08-30 20:25:21
广告
不感兴趣
开通SVIP免广告
  • 菠萝蜜
  • E览无余
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Option Explicit
Sub abc()
 Dim a, filename(), m, n, fso, i, j, k
 Set fso = CreateObject("scripting.filesystemobject")
 Call getfilename(fso, filename, n, ThisWorkbook.Path, ".xlsx")
 If n = 0 Then MsgBox "!": Exit Sub
 ReDim b(1 To 10 ^ 4, 1 To 12)
 For i = 1 To n
  With GetObject(filename(i))
   With .ActiveSheet
    a = .[a1].CurrentRegion.Resize(, 12).Value
    For j = 3 To UBound(a)
     m = m + 1
     For k = 1 To UBound(a, 2)
      b(m, k) = a(j, k)
     Next
    Next
   End With
   .Close False
  End With
 Next
 [a2].Resize(m + 10, UBound(b, 2)) = b
End Sub
Function getfilename(fso, filename, n, pth, mark)
 Dim spth, t
 If Right(pth, 1) <> "\" Then pth = pth & "\"
  Set spth = fso.getfolder(pth)
  For Each t In spth.Files
   If LCase(Right(t, Len(mark))) = LCase(mark) And InStr(t, "~") = 0 Then
    n = n + 1: ReDim Preserve filename(1 To n)
    filename(n) = spth & "\" & t.Name
   End If
  Next
  For Each t In spth.subfolders
   Call getfilename(fso, filename, n, t, mark)
  Next
End Function


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 5回复贴,共1页
<<返回excel吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示