返回列表 上一主題 發帖

[發問] 如何在多個excel檔中找出資料,然後在同一個檔中排序

回復 2# luhpro
修改你的程序請參考參考
  1. Sub Ex()
  2.     Dim Ar(), S As Integer, sPath As String, sFName As String
  3.     ReDim Ar(1, S)
  4.     sPath = ThisWorkbook.Path    ' 指定路徑為本檔案所在的的目錄
  5.     sFName = Dir(sPath & "\*.xls")   ' 找尋第一個Excel檔案
  6.     Do While sFName <> ""    ' 執行迴圈。
  7.         If sFName <> ThisWorkbook.Name Then  ' 開啟本檔案以外的檔案
  8.             ReDim Preserve Ar(1, S)
  9.             With Workbooks.Open(sPath & "\" & sFName) ' 開檔
  10.                 With .Sheets(1).Cells.Find("總平均")
  11.                     Ar(0, S) = Mid(sFName, 1, InStrRev(sFName, ".") - 1)
  12.                     Ar(1, S) = Cells(1, 2)
  13.                 End With
  14.                 .Close
  15.             End With
  16.             S = S + 1
  17.         End If
  18.         sFName = Dir    ' 尋找下一個檔案
  19.     Loop
  20.     Range("A:C") = ""
  21.     Range("A1:C1") = Array("排名", "人名", "總平均")
  22.     Range("B2").Resize(S, 2) = Ar
  23.     Range("A1").CurrentRegion.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlYes
  24.     With Range("A2:A" & Range("B2").End(xlDown).Row)
  25.         .Value = "ROW()-1"
  26.         .Value = .Value
  27.     End With
  28.   If S = 0 Then
  29.     MsgBox ("找不到任何資料檔案...")
  30.   Else
  31.     MsgBox ("資料讀取完成, 共讀取 " & S - 1 & " 個檔案...")
  32.   End If
  33. End Sub
複製代碼

TOP

        靜思自在 : 天上最美是星星,人生最美是溫情。
返回列表 上一主題