返回列表 上一主題 發帖

開啟固定資料夾裡的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

回復 1# die78325
應該是Open不支援萬用字元吧
試試看用Dir 取得正確名稱再Open看看
紅字部分可用相同字數的問號匹配

TOP

回復 2# stillfish00


    可以改成這樣是嗎??
From(測試測試 系統發送 (mis@111.com.tw))_ID(????)_I55447_1213??????.CSV
大大可提供DIR教學嗎??? 我知道是偵測是否開啟檔案用的DIR  
但不知怎樣可以向你說的取得正確名稱@@" 感謝大大回復~
自用車也可以簽帳喔!
五千元加油金加入油箱後還回饋您6200元
福利旺車友會power-want.com

TOP

回復 3# die78325

fs = Dir("C:\下載資料夾\From(測試測試 系統發送 (mis@111.com.tw))_ID(" & "*" & ")_I55447_" & Format(Date, "mmdd") & "*" & ".CSV")
If fs <> "" Then Workbooks.Open fs
學海無涯_不恥下問

TOP

回復 3# die78325
同4# , 修正一下
If fs <> "" Then Workbooks.Open "C:\下載資料夾\" & fs

TOP

回復 5# stillfish00
回復 4# Hsieh
感謝兩位大大協助~~已成功!
自用車也可以簽帳喔!
五千元加油金加入油箱後還回饋您6200元
福利旺車友會power-want.com

TOP

回復 4# Hsieh


再麻煩大大!我的檔案都9點固定新增    但是我希望我中間可以不段的執行   所以 如果過了12點 就會變成找不到資料
可以做成如果今天的找不道  就倒退一天嗎      假設今天 1217     過了12點 他會變成找1218的 但是 找不道就往回找1217的!
該如何改呢??   還是乾脆就用略過錯誤等到9點就會會正常執行了 =="  !
自用車也可以簽帳喔!
五千元加油金加入油箱後還回饋您6200元
福利旺車友會power-want.com

TOP

回復 4# Hsieh


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

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

本帖最後由 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

        靜思自在 : 對父母要知恩,感恩、報恩。
返回列表 上一主題