返回列表 上一主題 發帖

開啟固定資料夾裡的csv(不斷新增)

開啟固定資料夾裡的csv(不斷新增)

c:\下載資料夾   裡面有以下這樣的檔案   每日九點會傳過來
From(測試測試 系統發送 (mis@111.com.tw))_ID(1581)_I55447_1212090002.CSV
From(測試測試 系統發送 (mis@111.com.tw))_ID(1587)_I55447_1213090016.CSV

紅色部份我不確定他的規律 所以 希望可以用   *  來替代
藍色部份是 日期  所以我使用
Dim a As String
a = Format(Date , "mmdd")
Workbooks.Open Filename:="C:\下載資料夾\From(測試測試 系統發送 (mis@111.com.tw))_ID(" & "*" & ")_I55447_" & a & "*" & ".CSV"

顯示找不到或名子錯誤 希望大大們解答   !!
自用車也可以簽帳喔!
五千元加油金加入油箱後還回饋您6200元
福利旺車友會power-want.com

回復 15# GBKEE

Msgbox DateValue(Fc.GetFile("C:\下載資料\" & f).DateLastAccessed)

    此代碼要貼在 f = Dir(f)以下  迴圈以上
得到結果為2013/04/18   為正確的
我在想 應該是迴圈之後把舊的也開啟了
所以我在
             Workbooks.Open "C:\下載資料\" & f         後面讓他跳脫迴圈就OK了     ~>>>  : GoTo 離開

是這樣的關西嗎??   
DO While
不適執行一次是正確的就離開了  怎麼又會持續迴圈  還是我記錯了= ="!!

反正目前看起來應該是OK了....我在多測試看看  @@
自用車也可以簽帳喔!
五千元加油金加入油箱後還回饋您6200元
福利旺車友會power-want.com

TOP

回復 14# die78325
測試看看
  1. Msgbox DateValue(Fc.GetFile("C:\下載資料\" & f).DateLastAccessed)
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 13# GBKEE


    ※今年04/18的是今天 所以檔案須是今年04/18所建立或修改存檔的※

是阿= ="  我在解說一次喔

2013/04/18 寄來的檔案   存取時間是2013/04/18 09:00   (應該單開此檔)
2012/04/18 的檔案    存取時間是 2013/03/21 06:29
卻會開啟兩個檔案
那問題是出在哪???
我試著把  a 改為 a= Format(Date - 1, "mmdd")
但是還是開兩個檔案  2013/04/17跟2012/04/17的檔案= =所以 好像開啟最後存取的語法沒反應
自用車也可以簽帳喔!
五千元加油金加入油箱後還回饋您6200元
福利旺車友會power-want.com

TOP

回復 12# die78325
今年04/18的是今天 所以檔案須是今年04/18所建立或修改存檔的
  1. Option Explicit
  2. Sub Ex()
  3.     Dim a As String, f As String, Fc As Object
  4.     Set Fc = CreateObject("Scripting.FileSystemObject")
  5.     'FileSystemObject 物件   提供對電腦檔案系統的存取。
  6.     a = Format(Date, "mmdd")
  7.     f = "C:\下載資料夾\From(測試測試 系統發送 (mis@111.com.tw))_ID(" & "*" & ")_I55447_" & a & "*" & ".CSV"
  8.     f = Dir(f)
  9.     '****因為此檔傳送來只有日期沒有年份  所以 我現在抓的資料 有時候都會抓到去年的0416的檔案****
  10.     '如此會有1個以上的檔案 用迴圈處理
  11.     Do While f <> ""
  12.         If DateValue(Fc.GetFile("C:\下載資料\" & f).DateLastAccessed) = Date Then
  13.          'DateLastAccessed 屬性 傳回最後一次存取指定檔案或資料夾的日期和時間。唯讀。
  14.             Workbooks.Open "C:\下載資料\" & f
  15.          End If
  16.         f = Dir
  17.     Loop
  18. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 10# GBKEE


    程式可行了 但是 ....他一次開兩個檔案  =="  所以沒有做篩選欸  把找到的都打開了
我去年04/18的檔案的最後修正日期為2013-03-21    今年04/18的是今天   會不會是用年份區分的關西??
可是你註解是寫說開啟最後的資料阿......~"~ G大拍謝捏  又要再麻煩您了@@"
自用車也可以簽帳喔!
五千元加油金加入油箱後還回饋您6200元
福利旺車友會power-want.com

TOP

回復 10# GBKEE


    大大 你有遠端嗎?? 可否幫我看一下??
目前 顯示沒有定義 f  

我把f 定為 string 因為是fs = dir(f) '個人想法應該是把偵測到的名稱紀錄為 fs
但下面這句就不太了解   而且顯示錯誤
If Year(Fc.GetFile(a & f).DateLastAccessed) = Year(Date) Then  '顯示找不到檔案

而且我建立按鈕  按了都沒反應   用F8 or F5 執行才會跑程式(怪事)
自用車也可以簽帳喔!
五千元加油金加入油箱後還回饋您6200元
福利旺車友會power-want.com

TOP

本帖最後由 GBKEE 於 2013-4-18 14:46 編輯

回復 9# die78325
試試看
  1. Sub Ex()
  2.     Dim a As String, f As String, Fc As Object
  3.     Set Fc = CreateObject("Scripting.FileSystemObject")
  4.     'FileSystemObject 物件   提供對電腦檔案系統的存取。
  5.     a = Format(Date, "mmdd")
  6.     f = "C:\下載資料夾\From(測試測試 系統發送 (mis@111.com.tw))_ID(" & "*" & ")_I55447_" & a & "*" & ".CSV"
  7.     f = Dir(f)
  8.     '****因為此檔傳送來只有日期沒有年份  所以 我現在抓的資料 有時候都會抓到去年的0416的檔案****
  9.     '如此會有1個以上的檔案 用迴圈處理
  10.     Do While f <> ""
  11.         If Year(Fc.GetFile("C:\下載資料\" & f).DateLastAccessed) = Year(Date) Then
  12.          'DateLastAccessed 屬性 傳回最後一次存取指定檔案或資料夾的日期和時間。唯讀。
  13.              Workbooks.Open "C:\下載資料\" & f
  14.          End If
  15.         f = Dir
  16.     Loop
  17. End Sub
  18. ub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 4# Hsieh


    大大 ,此程式用了一段時間 也遇到了些問題 ,雖然不段的再進修與練習寫新程式  
   但還是想不出頭緒, 因為此檔傳送來只有日期沒有年份  所以 我現在抓的資料 有時候都會抓到去年的0416的檔案 ....(但有時又會是2013正確的)不知道抓取的定義是否為隨機的
但是此附件的  ID  會一直向上增加  有辦法用DIR抓取 ID較大的檔案嗎??   或者是比較最後儲存日期來抓取最新的資料!(最好是兩種方式都教我^^)哈哈
目前程式為:
  1. fs = Dir("C:\下載資料\From(測試測試 系統發送 (mis@111.com.tw))_ID(" & "*" & ")_I55447_" & Format(Date, "mmdd") & "*" & ".CSV")
  2. If fs <> "" Then
  3. Workbooks.Open "C:\下載資料\" & fs
  4. Else:
  5. fs = Dir("C:\統一信件\From(測試測試 系統發送 (mis@111.com.tw))_ID(" & "*" & ")_I55447_" & Format(Date - 1, "mmdd") & "*" & ".CSV")
  6.         If fs <> "" Then
  7.         Workbooks.Open "C:\下載資料\" & fs
  8.         Else: GoTo 離開
  9.         End If
  10. End If
複製代碼
自用車也可以簽帳喔!
五千元加油金加入油箱後還回饋您6200元
福利旺車友會power-want.com

TOP

回復 4# Hsieh


    大大  剛自己試一下 已解決了.......^^
自用車也可以簽帳喔!
五千元加油金加入油箱後還回饋您6200元
福利旺車友會power-want.com

TOP

        靜思自在 : 有智慧才能分辨善惡邪正;有謙虛才能建立美滿人生。
返回列表 上一主題