怎么在多个(上千个)excel表中提取出特定的数据?

发布网友 发布时间:2022-04-23 07:16

我来回答

4个回答

热心网友 时间:2022-06-06 14:00

展开3全部

将以下代码复制到你要合并的工作表VBA视窗,然后执行此代码

Sub CombineWorkbooksrange()

Dim FilesToOpen, ft

Dim x As Integer

Application.ScreenUpdating = False

On Error GoTo err

FilesToOpen = Application.GetOpenFilename("Excel文件(*.xls & *.xla & *.xlt *.xlsx *.xlsb),*.xls;*.xla;*.xlt;*.xlsx;*.xlsb", MultiSelect:=True, Title:="要合并的文件")

If TypeName(FilesToOpen) = "boolean" Then

MsgBox "没有选定文件"

GoTo err

End If

x = 1

While x - 1 < UBound(FilesToOpen)

Set wk = Workbooks.Open(Filename:=FilesToOpen(x))

For i = 1 To wk.Sheets.Count

Set xlra = wk.Sheets(i).Range("a1:z1")

'注意,引号内的1就是你要的相同工作表名,如果工作表名无要求,则继续,取单元格数值,现在是取a1:z1

Sheet1.Range("a65500").End(xlUp).Offset(1, 0) = wk.Name

xlra.Offset(0, 0).Resize(xlra.Rows.Count, xlra.Columns.Count).Copy Sheet1.Range("a65500").End(xlUp).Offset(1, 1)

Next

x = x + 1

wk.Close

Wend

MsgBox "合并成功完成!"

err:

End Sub

热心网友 时间:2022-06-06 14:00

如果我遇到这样的问题,几分钟写个VBA代码就解决了,但是我不可能几分钟教会你达到这个水平,下面粘贴一下我的代码,随缘吧:
sub 宏1()
dim st,p,f,i
set st=activesheet
p="c:\temp\"'上千个文件所在的文件夹,必须以\结尾
f=dir(p & "*.xls?")
while f<>""
i=i+1
st.cells(i,1)=f
with workbooks.open (p & f)
.sheets(1).range("a1:z1").copy st.cells(i,2)
.close
end with
f=dir
wend
end sub

热心网友 时间:2022-06-06 14:01

先实现在一个表格中提取。然后遍历所有文件执行相同步骤。

热心网友 时间:2022-06-06 14:02

具体问题具体对待。
特定的数据有什么特征?追问都是文件里的第一行

追答方法1、VBA
方法2、PowerQuery
方法3、一行行复制粘贴
方法4、交给秘书

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com