返回列表 上一主題 發帖

[發問] 讀取最新檔案內資料

回復 1# taiwan
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim xDir As String, i As Integer, Ay(), Ar(), s As Variant
  4.     Dim xPath As String
  5.     xPath = "A:\"
  6.     xDir = Dir(xPath & Format(Date, "yyyy-mm-dd") & "*.xls", vbDirectory)
  7.     'Dir: 表示合乎條件、檔案屬性、磁碟標記的一個檔案名稱、或目錄、檔案夾名稱。
  8.     If xDir = "" Then MsgBox "沒有最新檔案": Exit Sub
  9.     Do While xDir <> ""
  10.         ReDim Preserve Ar(0 To i)   '陣列:保持原有元素,重新配置動態陣列變數的儲存空間。
  11.         ReDim Preserve Ay(0 To i)
  12.         Ar(i) = xDir
  13.         Ay(i) = Val(Replace(Split(xDir, " ")(1), ".xls", "")) '取得數字
  14.         i = i + 1
  15.         xDir = Dir                  '下一個 合乎條件的檔案
  16.     Loop
  17.     s = Application.Max(Ay)
  18.     s = Application.Match(s, Ay, 0)
  19.     If MsgBox("開啟最新  檔案 " & vbTab & Ar(s - 1) & vbLf & Join(Ar, vbLf), vbYesNo) = vbYes Then
  20.         Workbooks.Open xPath & Ar(s - 1)
  21.     End If
  22. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2014-11-8 19:17 編輯

回復 4# taiwan
有點看不太懂
慢慢來,不懂的函數,方法 可察看vba的說明

DIR 會依檔案名稱遞增來排序
2#的程式碼可修改一下
  1. Option Explicit
  2. Sub Ex()
  3.     Dim xPath As String, xDir As String, S As String
  4.     xPath = "A:\"
  5.     xDir = Dir(xPath & Format(Date, "yyyy-mm-dd") & "*.xls", vbDirectory)
  6.     'Dir: 表示合乎條件、檔案屬性、磁碟標記的一個檔案名稱、或目錄、檔案夾名稱。
  7.     If xDir = "" Then MsgBox "沒有最新檔案": Exit Sub
  8.     Do While xDir <> ""
  9.         S = xDir
  10.         xDir = Dir                  '下一個 合乎條件的檔案
  11.     Loop
  12.     If MsgBox("開啟最新  檔案 " & vbTab & S, vbYesNo) = vbYes Then
  13.         Workbooks.Open xPath & S
  14.     End If
  15. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 閒人無樂趣,忙人無是非。
返回列表 上一主題