ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何提取不同年份不同月份文件夹中指定的行列数数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-2-17 13:26 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
现在的情况是在文件夹中有2016-2017年(实际我要做2013-2017年)每个月的文件夹下包括两个分厂的工作簿,(每一个分厂的某一个产品每个月表结构是一样的)现在指定包含"动力厂"的关键字和动力厂工作簿中的"A"产品工作表指定行列数就将所有数据都过来,
请问要怎么实现(如果指定洗选厂B产品也可以实现另外一个分厂数据统计) 成本分析设计.rar (627.12 KB, 下载次数: 18)


补充内容 (2017-2-23 16:16):
格式在后重新设计了下

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-23 15:46 | 显示全部楼层
本帖最后由 天道酬勤y 于 2017-2-23 15:52 编辑
成本分析设计.rar (932.3 KB, 下载次数: 6) opiona 发表于 2017-2-23 15:09

大神厉害啊,但是好像有一点差异,现在是产品下是提取出来的产品,我想xx厂下面是厂,产品下面是产品,具体见图 谢谢

原先的

原先的
   
需要的是这个格式的

现在的效果

现在的效果


TA的精华主题

TA的得分主题

发表于 2017-2-17 13:36 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-17 13:39 | 显示全部楼层
季茉 发表于 2017-2-17 13:36
应该可以用数据透视表向导做多表透视

不行 很多合并单元格,用VBA才行,我想用VBA把需要的列全部复制出来,再用透视表

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-17 14:09 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-21 15:44 | 显示全部楼层
本帖最后由 天道酬勤y 于 2017-2-23 17:06 编辑

大神救救我啊,格式重新设计了下 取xx厂和xx产品

格式

格式
成本分析设计.rar (932.3 KB, 下载次数: 1)

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-22 09:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
踩踩人气 急寻大师

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-22 11:16 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-23 10:36 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-2-23 15:09 | 显示全部楼层
  1. Sub Opiona()

  2. '禁止系统刷屏?触发其他事件等
  3. 'On Error Resume Next    '// 发生错误,自动执行下一句,就是忽略错误
  4. Application.ScreenUpdating = False '//关闭屏幕刷新
  5. Application.DisplayAlerts = False '//关闭系统提示
  6. Application.EnableEvents = False  '//禁止触发其他事件
  7. t = Timer   '//开始时间



  8.     Set SHX = Worksheets("动力厂A产品台账")
  9.     SHX.Range("A2:G1048576").ClearContents

  10.     STRNAME = SHX.Range("M4").Value
  11.     SHEETNAME = SHX.Range("M5").Value
  12.     KSH = SHX.Range("M6").Value
  13.     JSH = SHX.Range("M7").Value
  14.     ICOUNT = JSH - KSH - 1
  15.     COUNTCOL = SHX.Range("M100").End(3).Row - 7 + 2

  16.     FileArr = FileAllArr(ThisWorkbook.Path, "*" & STRNAME & "*.xls?", ThisWorkbook.Name, True, False)
  17.     For I = 0 To UBound(FileArr)
  18.         STRMONTH = Mid(GetPathFromFileName(FileArr(I)), 1, InStr(GetPathFromFileName(FileArr(I)), STRNAME) - 1)
  19.         Set WB = Workbooks.Open(FileArr(I))
  20.         Set SHW = WB.Sheets(SHEETNAME)

  21.         ReDim ARR(1 To ICOUNT, 1 To COUNTCOL)

  22.         For IROW = 1 To ICOUNT
  23.             ARR(IROW, 1) = STRMONTH
  24.             ARR(IROW, 2) = STRNAME
  25.             For ICOL = 3 To COUNTCOL
  26.                 ARR(IROW, ICOL) = SHW.Range(SHX.Range("M" & ICOL - 3 + 8).Value & IROW + KSH - 1).Value
  27.             Next
  28.         Next

  29.         WB.Close False  '//保存

  30.         LASTROW = SHX.Range("A1048576").End(3).Row + 1
  31.         SHX.Range("A" & LASTROW).Resize(UBound(ARR, 1), UBound(ARR, 2)) = ARR   '//(0 TO X)的数组行列都要+1,(1 TO X) 的不要
  32.     Next
  33.    
  34. Application.EnableEvents = True  '//  '//恢复触发其他事件
  35. Application.ScreenUpdating = True '//恢复屏幕刷新
  36. Application.DisplayAlerts = True '//恢复系统提示
  37. MsgBox "符合條件的文件個數: " & UBound(FileArr) + 1 & vbCrLf & vbCrLf & "一共用时:" & Format(Timer - t, "#0.0000") & " 秒", , "北极狐提示!!" '//提示所用时间
  38. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2017-2-23 15:11 | 显示全部楼层
完整代碼見附件:

成本分析设计.rar (637.11 KB, 下载次数: 19)





您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 06:02 , Processed in 0.046009 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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