如何将一个文件夹内所有Excel的某一单元格(比如C5)的数值都提取出来,并保存为另一个ExceL

如题所述

新建一个EXCEL,运行此代码,将需合并的文件选中即可
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
If wk.Sheets(i).Name = "1" Then
Set xlra = wk.Sheets("1").[C5]
Else
Set xlra = wk.Sheets(i).[C5]
End If '注意,引号内的1就是你要的相同工作表名,如果工作表名无要求,则继续,取单元格数值,现在是取C5
Sheet1.Range("a65500").End(xlUp).Offset(1, 0) = xlra
Next
x = x + 1
wk.Close
Wend
MsgBox "合并成功完成!"
err:
End Sub追问

卡到这儿了

没法选择Excel文件

好像识别不出来

追答

运行后的文件打开对话框出来了么?

追问

运行以后会弹出一堆的这个

然后要一个一个的关掉

但是最后结果还是出不来

运行完还是没有任何数据

追答

识别那句代码被标红了,照片看不清楚,能用截屏么?

正常应该是这样的

追问

您有邮箱么,我发给您看一下吧

追答

陆捌447伍伍一,Q邮箱

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-14
愿意写代码就像其他大神那样用vba代码。
不想写代码就用powerquery,引入来自文件夹的源,然后基于单个Excel创建自定义函数,再将其应用到该文件夹下所有的文件上。
第2个回答  2019-10-12
这个需要写代码编程才能实现
第3个回答  2019-10-12
在所有的工作簿中都只有一个工作表吗?还是可能有多个,这多个的C5都 要取出来?
相似回答