ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何生成同一文件夹下的所有工作簿内和所有工作表目录

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-9-27 10:14 | 显示全部楼层 |阅读模式
单位经常与有关单位有关联数据,每月都把各单位数据做在一个工作簿中,但并非每月各单位都有,故每月工作簿内工作表数量不定,
有时想查找一下一定时段某单位的数据,必须打开每个工作簿查看
想定期对同一文件夹下的文件整理出一个目录文件来,即新生成一个工作簿为目录,其中第一列为文件夹下的工作簿名,第二列为工作簿下的所有工作表名.
请高手帮忙

关联数据.rar

8.82 KB, 下载次数: 216

TA的精华主题

TA的得分主题

发表于 2011-9-27 10:58 | 显示全部楼层

  1. '在文件夹内新建一个表,复制粘贴此代码,运行宏。

  2. Sub OPIONA()
  3. 'On Error Resume Next
  4. Dim xlBook As Excel.Workbook
  5. Dim xlSheet As Excel.Worksheet
  6. Application.ScreenUpdating = False '关闭屏幕刷新
  7. Application.DisplayAlerts = False '关闭提示
  8. If MsgBox("需要操作的数据表是:EXCEL2003 格式,请选择:是!" & Chr(13) & "" & Chr(13) & "需要操作的数据表是:EXCEL2007 格式,请选择:否!", vbYesNo, "北极狐提示!!") = vbYes Then
  9. S = "\*.xls"
  10. ss = 4
  11. Else
  12. S = "\*.xlsx"
  13. ss = 5:
  14. End If
  15. t = Timer '记录开始时间
  16. f = Dir(ThisWorkbook.Path & S) '生成查找EXCEL的目录
  17. n = 2 '开始记录工作簿名和工作表名的开始行
  18. Do While f > " " '在目录中循环
  19. If f <> ThisWorkbook.Name Then '如果不是打开的工作簿
  20. Set xlBook = Workbooks.Open(ThisWorkbook.Path & "" & f) '打开已经存在的EXCEL工件簿文件
  21. For Each sh In xlBook.Worksheets '遍历工作表
  22. Windows(ThisWorkbook.Name).Activate '回到操作主表界面
  23. If n = 2 Then Sheets(1).Cells(1, 1) = "工作簿名": Sheets(1).Cells(1, 2) = "工作表名": '加入标题行
  24. Sheets(1).Cells(n, 1) = Mid(f, 1, Len(f) - ss) '所在工作簿名
  25. Sheets(1).Cells(n, 2) = sh.Name '所在工作表名
  26. n = n + 1
  27. Next
  28. Windows(f).Close (False) '关闭工作簿,不保存
  29. End If
  30. f = Dir
  31. Loop
  32. Application.ScreenUpdating = True
  33. Application.DisplayAlerts = True
  34. MsgBox "一共用时:" & Timer - t & " 秒", , "北极狐提示!!"

  35. End Sub
复制代码
文件夹下的所有工作簿内和所有工作表目录.rar (10.88 KB, 下载次数: 856)

TA的精华主题

TA的得分主题

发表于 2011-9-27 16:25 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-9-27 20:37 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-9-29 10:16 | 显示全部楼层
谢谢二楼opiona,太感谢了

TA的精华主题

TA的得分主题

发表于 2011-9-29 12:31 | 显示全部楼层
数据计算到 2000多行的时候 ,就提示  vb 什么的  就提示 选定的区域太大 ???

没有那么多文件,无法测试,你将错误截图发来看看

TA的精华主题

TA的得分主题

发表于 2011-11-18 16:41 | 显示全部楼层
这个实际工作中好用,不错。

TA的精华主题

TA的得分主题

发表于 2012-1-31 11:13 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-1-31 11:16 | 显示全部楼层
opiona 发表于 2011-9-27 10:58

生成目录好快啊,能否升级为可以修改文件名,设计成四列,原工作簿名-原工作表名,修改为新工作簿名-新工作表名。这样就非常好用。。

TA的精华主题

TA的得分主题

发表于 2012-7-31 16:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
走过....拾起....入袋
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 13:05 , Processed in 0.042423 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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