如何将一个文件夹中多个表格中的固定行列数值提取到一个新的EXCEL表格当中 如何将一个文件夹中多个表格中的固定行列数值提取

www.zhiqu.org     时间: 2024-06-02

以Excel2007操作为例:

1、首先打开Excel,如图所示,接着在汇总表中找到需要汇总种类的第一个单元格。

2、然后单击选中的单元格,然后在编辑栏输入“=sum(公司1!”。

3、接着需要汇总的新单元格中,如图所示,此时单元格边框变成虚线状态。

4、然后按住shift键后选中需要汇总的表的最后一张。

5、最后,再返回到刚才编辑框中加上“)”,将公式补全后按回车,这样就可以汇总完成,这样操作就可以解决问题。



将这些文件copy到一个文件夹(只有这些Excel,且若打开某一文件,数据就能看见——即不用点其他sheet),建一新Excel,也存到该文件夹。仅打开该新Excel,按Alt+F11,左边窗口右键点,插入模块,在右边窗口粘贴如下代码:

Sub Find()
Application.ScreenUpdating = False
Dim MyDir As String
MyDir = ThisWorkbook.Path & "\"
ChDrive Left(MyDir, 1) 'find all the excel files
ChDir MyDir
Match = Dir$("")
Do
If Not LCase(Match) = LCase(ThisWorkbook.Name) Then
Workbooks.Open Match, 0 'open
ActiveSheet.Copy Before:=ThisWorkbook.Sheets(1) 'copy sheet
Windows(Match).Activate
ActiveWindow.Close
Match = Dir$
End If
Loop Until Len(Match) = 0
Application.ScreenUpdating = True
End Sub

按F5执行此宏,文件copy完成。

然后可以用sum(sheet12:sheet30!A1)汇总了。
如果数据只有几列的话,可以直接用宏copy到一张工作表中。

Sub CommandButton1_Click()

    Filename = Application.GetOpenFilename(FileFilter:="Excel ,*.xls*", Title:="Choose Files", MultiSelect:=True)

'可使用Ctrl或Shift选择多个文件 
    If Not IsArray(Filename) Then Exit Sub

    Application.ScreenUpdating = False

    For i = 1 To UBound(Filename)

        Set xlbook = Workbooks.Open(Filename(i))

        'sheet1中的B7,sheet2中的C5,sheet3中的D6

        Cells(i, "A") = xlbook.Sheets("sheet1").[B7]

        Cells(i, "B") = xlbook.Sheets("sheet2").[C5]

        Cells(i, "C") = xlbook.Sheets("sheet3").[D6]

        xlbook.Close

    Next i

    Application.ScreenUpdating = True

End Sub


使用VBA(宏)代码,按Alt+F11进入VBA界面,按Alt+i+m插入模块后,复制以下代码,按F5执行

Sub copyall()
Dim n%
n=1
For i = 1 To 5 '把这个数字改成你的文件总数
    Set excel_Book = Workbooks.Open("E:\excel\00" & i & ".xlsx") '地址写作"E:\xxx\xxx\"保留英文双引号
    Set excel_Sheet = excel_Book.Worksheets("Natural Hazards")
    excel_Sheet.Range("I7:I17").Copy ThisWorkbook.Worksheets("Sheet1").Cells(1,n)
    n=n+1
    excel_Book.Close False
Next
Set excel_Sheet = Nothing
Set excel_Book = Nothing
End Sub


工作簿2中sheet1的A1,B1,C1分别输入
=[工作簿1.xls]sheet1!B7
=[工作簿1.xls]sheet2!C5
=[工作簿1.xls]sheet3!D6

如何将一个文件夹中多个表格中的固定行列数值提取到一个新的EXCEL表格当中~

以Excel2007操作为例:
1、首先打开Excel,如图所示,接着在汇总表中找到需要汇总种类的第一个单元格。

2、然后单击选中的单元格,然后在编辑栏输入“=sum(公司1!”。

3、接着需要汇总的新单元格中,如图所示,此时单元格边框变成虚线状态。

4、然后按住shift键后选中需要汇总的表的最后一张。

5、最后,再返回到刚才编辑框中加上“)”,将公式补全后按回车,这样就可以汇总完成,这样操作就可以解决问题。

将这些文件copy到一个文件夹(只有这些Excel,且若打开某一文件,数据就能看见——即不用点其他sheet),建一新Excel,也存到该文件夹。仅打开该新Excel,按Alt+F11,左边窗口右键点,插入模块,在右边窗口粘贴如下代码:

Sub Find()
Application.ScreenUpdating = False
Dim MyDir As String
MyDir = ThisWorkbook.Path & "\"
ChDrive Left(MyDir, 1) 'find all the excel files
ChDir MyDir
Match = Dir$("")
Do
If Not LCase(Match) = LCase(ThisWorkbook.Name) Then
Workbooks.Open Match, 0 'open
ActiveSheet.Copy Before:=ThisWorkbook.Sheets(1) 'copy sheet
Windows(Match).Activate
ActiveWindow.Close
Match = Dir$
End If
Loop Until Len(Match) = 0
Application.ScreenUpdating = True
End Sub

按F5执行此宏,文件copy完成。

然后可以用sum(sheet12:sheet30!A1)汇总了。
如果数据只有几列的话,可以直接用宏copy到一张工作表中。


#瞿浅董# 如何把多份EXCEL文件里的所有工作簿中的指定某一列经过批处理提取汇总到一份新表里?最好用简单的vbs实现. -
(17541987466): 可以用VBA解决,需汇总的工作簿中文件放在D:\test下,要汇总的数据在工作表sheet1的B列第二行起,以下为程序:Private Sub CommandButton1_Click() Dim FolderName As String, wbName As String, r As Long, cValue As Variant Dim ...

#瞿浅董# 如何从多个Excel文件中提取指定单元格数据 -
(17541987466): 工具/材料:Microsoft Office Excel2016版,多个Excel文件. 1、首先在桌面上打开Excel文件. 2、在Microsoft Office Excel2016版窗口上,选中顶部工具栏里“方方格子”的“工作表”图标的“汇总拆分”图标. 3、在Microsoft Office Excel...

#瞿浅董# excel自动取多个文件中固定位置的值 -
(17541987466): 把所有文件放到同一个文件夹 新建一个文件 汇总 打开 汇总表 和你要计算的表 比如 beijing 汇总表A1=[BEIJING.xls]Sheet1'!A1+........+[shanghai.xls]Sheet1'!A1 这样就可以计算了 或者你把所有的表 导入同一个工作簿 计算起来就更快了

#瞿浅董# vb如何提取多个Excel文件中某个表格的某列数据到一个Excel表格里,如图,共有100多个表 -
(17541987466): 在工作表标签上击右键,查看代码.在VBE窗口中,点“插入”,模块.将以下代码粘贴到模块代码窗格中,ALT+F8运行该宏,就行了.附件中有样本.Sub 数据提取() For i = 2 To Worksheets.Count Sheets(1).Cells(Sheets(1).[a65536].End(3).Row + 1, 1) = Sheets(i).[D3] Sheets(1).Cells(Sheets(1).[b65536].End(3).Row + 1, 2) = Sheets(i).[e6] Next End Sub

#瞿浅董# 如何将excel中几十个工作表中的某一列提取出来单独做一个excel -
(17541987466): 假设这些份文件在一个文件夹中,且若打开某一文件,数据就能看见——即不用点其他sheet.建一新Excel,也存到该文件夹.仅打开该新Excel,同时按Alt+F11进入宏界面,点菜单的插入,模块,粘贴如下代码: Sub Find() Application....

#瞿浅董# 如何高效快速的将一个文件夹内多个EXCEL工作簿内的特定表格的数据拷贝合并到另1个新的EXCEL工作簿中? -
(17541987466): 在D盘根目录下新建“合并.xls”文件. 打开指定文件夹,将所有Excel文件全部打开. 在当前Excel中编辑: 1、打开视图-宏-建制宏,给宏命名,设定快捷键(如:e),保存在“个人宏工作簿”,确定. 2、选定A1单元格,按下Ctrl+Shift+End三键,选择当前工作表中的全部内容,复制. 3、打开D:\合并.xls,选定A1单元格,点右键-插入复制的单元格-活动单元格下移,确定,关闭,保存.再关闭先前文件,不保存. 4、此时,按下Alt+F8,调出宏命令,执行已录制的宏. 5、停止录制宏. 6、按下Alt+F8,调出宏命令,再次执行已录制的宏,直到将全部文件合并到D:\合并.xls中为止.最后,是否保存此宏,自便.

#瞿浅董# 如何将文件夹中多个EXCEL数值引用到一张表上 -
(17541987466): 你把每张表格中指定单元格数值:“=”到所需要的那表格中指定单元格中回车即可.

#瞿浅董# 如何将多个独立Excel文件(格式相同)的某固定列提出来,放到一个新的Excel表中 -
(17541987466): 很遗憾地告诉你,据我所知,你要的目标正常情况下是无法实现的!因为计算机文件夹里的文件数据是磁盘里保存着的,若一次也没有打而直接用EXCEL去调取文件夹里的数据恐难以实现的.只有当该新建需要调取这些文件数据的EXCEL表格有同台打开过,才可以实现数据的提取与更新保存,并且,每次打开文件时都会问你是否要更新数据的.理论上,调取500个文件的函数公式是可以搞定的,就是使用INDIRECT和ROW()函数就可以了,若有兴趣的话,可以到网上找一下其使用说明和范例,相信很快就可以学会和操作的.

#瞿浅董# 怎样通过VB实现多个EXCEL中特定行列的数据的提取 -
(17541987466): 楼上的都不可使用 我来给个能用的.如果好用 希望楼主多给点分 你在桌面建立个新的excel 命名为 "汇总" (程序运行完可以改名) 并将你的多个excel 放在 D盘根目录下的 “提取”文件夹 ,即创建个文件夹 并命名为“提取”,注意 这些名...

#瞿浅董# 怎么把一个文件夹内的多张EXCEL表格中的某一两个固定内容复制到不同文件夹的一张所指定的位置表格中 -
(17541987466): 建议用公式做链接,再替换成数值