请问excel大神,如何批量获取指定路径下其他excel文件中数据?

请问excel大神,如何批量获取指定路径下其他excel文件中数据?,第1张

如果只有两三个凳碧文件,可以使用公式实现:打开三个文件,在者粗告【总.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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12198222.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存