看板 Office 關於我們 聯絡資訊
資料夾之中可能會有n個檔 譬如 20161230A0001.xlsx 20161231A0001.xlsx 20161231A0002.xlsx 20161231A0003.xlsx 20161231A0005.xlsx 20161231A0006.xlsx 20170101A0001.xlsx 20170101A0002.xlsx 目前的code 本檔名 = ActiveWorkbook.Name 本路徑 = ActiveWorkbook.Path 結束日查尋 = "20161231" & "A" myfile = Dir(本路徑, vbDirectory) While myfile <> "" If MyName <> "." And MyName <> ".." Then '不找其他的資料夾 myfile1 = Left(myfile, 9) If myfile1 Like 結束日查尋 Then '假如前面都是20161231就會搜尋 查尋名 = myfile '其實這裡我有疑問(疑問2) End If End If myfile = Dir 'dir被呼叫時,會跳下一個檔案 Wend '<--關鍵在迴圈時,DIR又會回溯跳回去原來那個檔名的問題(疑問1) 我想要查尋20161231當天最後一個檔案的名稱 也就是20161231A0006.xlsx這個名稱 當我之後新的檔案要建檔時 我會用"查尋名"在+1 變成20161231A0007 檔案在同一個資料夾下 查尋名 是變數 這個問題不知道該如何解 關於疑問2的問題 我目前是要最後一個當日流水號最大的檔名 我猜想如果照順序,"查尋名"變數應該也會被洗成最後一個 所以我猜應該是不用丟入陣列或Range裡面再分析 求大大支援 參考網址 http://www.excelpx.com/home/show.aspx?id=10081 補充 我在網上有看到有人會再多用一個if跳過自己正在執行的檔案 我的執行檔案跟查尋檔案都在同一個資料夾內 不知道是否也有這樣的影響? 不過檔名是完全不同的,執行用的excel檔名沒有任何數字 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.158.244 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1483314115.A.AE8.html ※ 編輯: waiter337 (114.35.158.244), 01/02/2017 07:43:29 ※ 編輯: waiter337 (114.35.158.244), 01/02/2017 07:44:43 ※ 編輯: waiter337 (114.35.158.244), 01/02/2017 07:47:09 ※ 編輯: waiter337 (114.35.158.244), 01/02/2017 07:59:16 ※ 編輯: waiter337 (114.35.158.244), 01/02/2017 07:59:55 ※ 編輯: waiter337 (223.139.147.145), 01/02/2017 08:06:07
soyoso: https://i.imgur.com/FVRcjz5 修改本路徑,看是否符合 01/02 12:03
我在彰化那個網頁找到的code If Right(strNowPath, 1) = "\" Then strFileName = Dir(strNowPath & strFileExt, vbDirectory) strFileNameTime = strNowPath Else strFileName = Dir(strNowPath & "\" & strFileExt, vbDirectory) strFileNameTime = strNowPath & "\" End If 阿阿阿阿 我當初以為這行是沒用處的 xddddd 晚點試成功200p ※ 編輯: waiter337 (114.35.158.244), 01/02/2017 17:49:47 不過用大大的應該就夠了 感謝 ※ 編輯: waiter337 (114.35.158.244), 01/02/2017 18:00:41