如何在一个EXCEL表格里自动获取其他很多个EXCEL表格特定行列的数据?
比如在总表格的A1栏显示子表格甲C7处的数据,在总表格的A2栏显示子表格乙C7处的数据,在总表格的A3栏显示子表格丙C7处的数据……
求公式或解决方案,谢谢! 展开
粘贴到代码视图里面,直接点击运行即可,百来张表的话数据会比较多,运行的时间有点久,等待即可。
Sub 提取当前工作目录下所有表格c7单元格()
Dim Wb As Workbook
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" & "*.xlsx")
AWbName = ActiveWorkbook.Name
i = 1
Do While MyName <> ""
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "\" & MyName)
ActiveSheet.Range("C7").Copy ThisWorkbook.Sheets("sheet1").Cells(1, i)
Wb.Close False
i = i + 1
End If
MyName = Dir
Loop
Application.ScreenUpdating = True
MsgBox "已完成"
End Sub
有两个疑问,1.自动提取当前工作目录下所有EXCEL文档C7单元格的数据自动填入汇总表,怎么给所有子表格的数据一一对应?每个子表格的名字都是有规律的,例如XXX001XX,XXX002XX……
我在汇总表里怎么知道那一栏的数据是哪个子表格的呢?如何一一对应着提取数据?
2粘贴到代码视图里,这句话没看懂,是直接粘贴到EXCEL表格内容里么?还是哪里进去的专用代码输入界面,谢谢!
针对你的两个问题,我将代码做了修改:
第一行放置每个表格的C7单元格内容;第二行放置每个表格的名字,这样就解决了第一个问题;
粘贴到哪里,题主之前应该没接触到VBA,我这里做个简单的动态,你看下,有问题,在沟通。
在你表格的文件夹内随便新建一张表,点击打开,依次点击【开发工具】—【visual basic】,如果你没有开发工具这个选择,你就直接按快捷键【Alt+F11】,出来界面之后,右键【thisworkbook】—【插入】—【模块】,粘贴下面的代码,点击运行即可,你表格比较多,等待的时长会比较久,别急。
修改后的代码如下:
Sub 提取当前工作目录下所有表格c7单元格()
Dim Wb As Workbook
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" & "*.xlsx")
AWbName = ActiveWorkbook.Name
i = 1
Do While MyName <> ""
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "\" & MyName)
ActiveSheet.Range("C7").Copy ThisWorkbook.Sheets("sheet1").Cells(1, i)
ThisWorkbook.Sheets("sheet1").Cells(2, i) = MyName
Wb.Close False
i = i + 1
End If
MyName = Dir
Loop
Application.ScreenUpdating = True
MsgBox "已完成"
End Sub
需要注意的是:所有表格的插页名字都叫“Sheet1”,如果是其它名字的话,代码得做相应的改动!