如果只有两三个凳碧文件,可以使用公式实现:打开三个文件,在者粗告【总.xls】里面的需要的单元格输入等号=,然后点击别的工作簿、工作表、单元格,最后回车即可。
如果文件数量很多,或者需要获取数据的范围很多,或者需要获取不确定的数据,那么就必须使用VBA编程,首明例如下面的代码:
Option Explicit
Sub 宏1()
Dim st As Worksheet
Dim fn, n
Set st = ActiveSheet
For Each fn In Array("a.xls", "b.xls")
n = st.UsedRange.Rows.Count + 1
With Workbooks.Open(fn)
.Sheets(1).UsedRange.Copy st.Cells(n, 1)
.Close False
End With
Next fn
End Sub
可以VBA,新建一个EXCEL,在sheet2的A1单元格输入要你存了N个文件的文件夹路径:例如 h:\明细表\, 然后在sheet2建一个CommandButton按钮,把以下代码复制到按钮里面,点按钮后,程序会先把路径下文件夹的文件名写到sheet2的的A列,再把这些所有的文件的C2-G200的内容汇总到sheet1中.
Private Sub CommandButton1_Click()On Error Resume 乱辩亏Next
Application.ScreenUpdating = False
Dim sh As Worksheet
Range("a2:b65536").ClearContents
mypath = Trim(Range("a1"))
If Right(mypath, 1) <> "\" Then
mypath = 灶神mypath & "\"
n = 2
myfile = Dir(mypath & "\*.*")
Do While 哗神myfile <> ""
Cells(n, 2) = myfile
Cells(n, 1) = mypath & myfile
myfile = Dir
n = n + 1
Loop
If n = 2 Then Exit Sub '如果N=2,则表示路径下没有提取到xls文件
For j = 2 To n - 1
Workbooks.Open Trim(Range("a" & j))
With ThisWorkbook.Worksheets("sheet1")
row1 = .Range("b65536").End(xlUp).Row
Workbooks(Trim(Range("b" & j))).Worksheets("sheet1").Range("b2:g100").Copy .Range("b" & row1 + 1)
End With
Workbooks(Trim(Range("b" & j))).Close
Next j
Application.ScreenUpdating = True
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)