Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1741|回复: 2

[已解决](求助)如何批量提取表格数据?

[复制链接]
发表于 2012-6-10 15:11 | 显示全部楼层 |阅读模式
如附件 批量提取数据附件.rar (46.99 KB, 下载次数: 38)
发表于 2012-6-10 16:14 | 显示全部楼层    本楼为最佳答案   
本帖最后由 hrpotter 于 2012-6-10 16:18 编辑
  1. Sub test()
  2.     Dim ar, br(1 To 1000000, 1 To 1)
  3.     Dim i As Long, j As Long, k As Long
  4.     Dim f As String
  5.     Dim num As Integer
  6.     Dim wb As Workbook
  7.     Application.ScreenUpdating = False
  8.     num = Application.InputBox("请输入任意一个数(1-49):", , , , , , , 1)
  9.     If num >= 1 And num <= 49 Then
  10.         f = Dir(ThisWorkbook.Path & "\数据文件\*.xlsx")
  11.         Sheets(1).Cells.Clear
  12.         Do
  13.             Set wb = Workbooks.Open(ThisWorkbook.Path & "\数据文件" & f)
  14.             With wb.Sheets(1)
  15.                 ar = .Range("a1:a" & .Cells(.Rows.Count, 1).End(xlUp).Row)
  16.             End With
  17.             wb.Close
  18.             k = 0
  19.             Erase br
  20.             For i = 5 To UBound(ar) - 1
  21.                 If ar(i, 1) = num Then
  22.                     For j = 1 To 6
  23.                         br(k * 7 + j, 1) = ar(i + j - 5, 1)
  24.                     Next
  25.                     k = k + 1
  26.                 End If
  27.             Next
  28.             ThisWorkbook.Sheets(1).Cells(1, Replace(f, ".xlsx", "")).Resize(7 * k, 1) = br
  29.             f = Dir
  30.         Loop Until Len(f) = 0
  31.     End If
  32.     Application.ScreenUpdating = True
  33. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
Hotmailzwj + 1

查看全部评分

回复

使用道具 举报

发表于 2012-6-10 19:41 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-18 11:17 , Processed in 0.248250 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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