从多个excel中提取相同位置的数据与一个excel文件中

一共200个文件,需要提取b7,b8,b9,e22 这四个数据。求大神些一段完整的代码!!!谢谢

第1个回答  2015-06-30
举例·:一个excel文件,里面有一百多个工作表,但工作表名称没有规则顺序,不是按照sheet1、sheet2这样的顺序排列,现在需要把每个工作表里的A3数据提取出来,组成新的一列。
解决方法:用宏自定义函数
同时按Alt和F11进入宏界面,点菜单的插入,塻块,粘贴如下代码:

Function AllSh(xStr As String, i As Integer)
Application.Volatile
AllSh = Sheets(i).Range(xStr).Value
End Function

回到excel,在任意单元格输入=allsh("A3",ROW(A1))
公式向下复制。
第2个回答  2012-07-19
在最左边新建一个工作表,在该表运行以下代码
Sub 提取()
For I = 2 To Sheets.Count
Sheets(I).[B7].Copy Range("A" & [a60000].End(xlUp).Row + 1)
Sheets(I).[B8].Copy Range("B" & [b60000].End(xlUp).Row + 1)
Sheets(I).[B9].Copy Range("C" & [c60000].End(xlUp).Row + 1)
Sheets(I).[E22].Copy Range("D" & [d60000].End(xlUp).Row + 1)
Next
End Sub本回答被网友采纳
第3个回答  2012-07-22
代码如下:
说明: 这个是在做的时候,自动插入一个表,并将其命名为"提取结果".然后将各表的结果提取到此表的对应单元格,表示的意思已经有命名了.
Sub test()
Sheets.Add
ActiveSheet.Name = "提取结果"
ActiveSheet.Move before:=Worksheets(1)
Range("a1").Value = "工作表序号"
Range("b1").Value = "工作表名称"
Range("C1").Value = "B7单元格的值"
Range("D1").Value = "B8单元格的值"
Range("E1").Value = "B9单元格的值"
Range("F1").Value = "E22单元格的值"

For i = 2 To ActiveWorkbook.Sheets.Count
Cells(i, 1) = i
Cells(i, 2) = Worksheets(i).Name
Cells(i, 3) = Worksheets(i).Range("B7").Value
Cells(i, 4) = Worksheets(i).Range("B8").Value
Cells(i, 5) = Worksheets(i).Range("B9").Value
Cells(i, 6) = Worksheets(i).Range("E22").Value
Next
End Sub本回答被提问者采纳
第4个回答  2012-07-19
建议你网上下载个易永宝,里面有合并工作簿的功能,合并了就easy了
相似回答