返回列表 上一主題 發帖

[發問] 複製檔案至糢糊路徑

回復 1# PJChen

試試看
  1. Option Explicit
  2. Dim sf As Object
  3. Sub Ex()
  4.     Set sf = CreateObject("Scripting.FileSystemObject")
  5.     Ex_SubFolder "W:\私\範例\理貨單\"   '**呼叫程式 參數為 指定的資料夾"
  6. End Sub
  7. Sub Ex_SubFolder(xFolder As String)    '**參數為文字
  8.    Dim xSub As Object, E As Variant
  9.     Set xSub = sf.GetFolder(xFolder).SubFolders
  10.     '**SubFolders : 傳回包含所有資料夾的一個 Folders 集合物件
  11.     For Each E In xSub
  12.         Ex_xFiles E     '**呼叫程式 傳遞參數 Folder 物件
  13.         '**傳遞下一層的資料夾***
  14.         Ex_SubFolder E.Path       '**呼叫程式 傳遞參數 SubFolders 集合物件
  15.     Next
  16. End Sub
  17. Sub Ex_xFiles(xF As Variant)       '**參數為文字
  18.     Dim E As Variant
  19.     For Each E In xF.FILES         '**Files 集合物件 : 資料夾內的所有 File 物件的集合物件
  20.         Debug.Print E.SHORTPATH       '** E.SHORTPATH : 檔案的完整路徑名稱
  21.         '**在這裡套入你所需的程式碼
  22.         
  23.         '************
  24.     Next
  25. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2019-5-28 07:24 編輯

回復 3# PJChen
  1. Option Explicit
  2. Dim sf As Object
  3. Sub Ex()
  4.     Set sf = CreateObject("Scripting.FileSystemObject")
  5.     ' ***  為 指定檔案的資料夾目錄 , 不要包含檔案名稱  ****
  6.     Ex_SubFolder "e:\excel"
  7.     ' ***  為 指定檔案的資料夾目錄 , 不要包含檔案名稱  ****
  8. End Sub
  9. Sub Ex_SubFolder(xFolder As String)    '**參數為文字 為 指定檔案的資料夾目錄
  10.    Dim xSub As Object, E As Variant
  11.     Set xSub = sf.GetFolder(xFolder)
  12.     Ex_xFiles xSub.Files
  13.     For Each E In xSub.SubFolders
  14.         Ex_xFiles E.Files      '**呼叫程式 傳遞參數 Files 物件
  15.         '**傳遞下一層的資料夾***
  16.         Ex_SubFolder E.Path       '**呼叫程式 傳遞參數 SubFolders 集合物件
  17.     Next
  18. End Sub
  19. Sub Ex_xFiles(xF As Variant)       '**參數為文字
  20.     Dim E As Variant
  21.     For Each E In xF '.Files         '**Files 集合物件 : 資料夾內的所有 File 物件的集合物件
  22.         Debug.Print E.SHORTPATH      '** E.SHORTPATH : 檔案的完整路徑名稱
  23.     Next
  24. End Sub[code]Option Explicit
  25. Sub Ex()
  26.     Dim a
  27.     a = Format(Date, "mmdd")  '本月
  28.     Debug.Print a
  29.     a = Format(DateAdd("m", -1, Date), "mmdd")  '上一個月
  30.     Debug.Print a

  31. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 5# PJChen
是這樣嗎.
  1. Option Explicit
  2. Dim sf As Object, a As String, souf As String
  3. Sub Ex()
  4.     souf = "W:\蘆竹共用\倉儲共用\1_理貨.庫存\1.日班理貨換算表\*5月*.xlsx"  '**指定的*檔案
  5.     a = "*" & Format(Date, "yyyymmdd") & "*"          '本月當日
  6.     Set sf = CreateObject("Scripting.FileSystemObject")
  7.     Ex_SubFolder "W:\0_自訂表單\Backup\"
  8.     ' ***  W:\0_自訂表單\Backup資料夾目錄 ,下搜尋所有的子目錄 ****
  9. End Sub
  10. Sub Ex_SubFolder(xFolder As String)    '**參數為文字 為 指定檔案的資料夾目錄
  11.    Dim xSub As Object, E As Variant
  12.     Set xSub = sf.GetFolder(xFolder)   'xSub 傳回一個資料夾物件
  13.     For Each E In xSub.SubFolders   '** E 一一傳回 xSub.下的子資料夾目錄
  14.          Debug.Print E.Path
  15.          If E.Path Like a Then           '**子資料夾 包含本月當日
  16.             '**複製souf的指定檔案到, E.Path資料夾.   對嗎!  對嗎! ****"
  17.             sf.copyFile souf, E.Path
  18.             '*********************************************************
  19.         End If
  20.         '**傳遞下一層的資料夾***
  21.         Ex_SubFolder E.Path       '**呼叫程式 傳遞參數  下一個資料夾目錄
  22.     Next
  23. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 7# PJChen

多個來源路徑.....所有包含"*5月*.xlsx"...的檔案到複製多個目的路徑
,多個目的路徑有包含1.日班理貨換算表 一樣要複製到嗎?

B6為指定資料夾 (1.日班理貨換算表) ,裡面有很多檔案,我只放2個測試,每個檔案都做相同的動作
這相同的動作 也包含這複製後的*5月*.xlsx"...檔案 嗎?
只放2個測試 : 特定的檔案或是所有檔案
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2019-5-30 09:20 編輯

回復 9# PJChen

W:\蘆竹共用\倉儲共用\倉儲共用\1_理貨.庫存\比菲多\108年比菲多\過允收蘆竹所轉經銷        D:\0_自訂表單\Backup\倉儲共用 20190528\比菲多\過允收蘆竹所轉經銷..........來源檔案名稱"*5月*.xlsx"
沒有 \儲共用 20190528 這共通性須單獨處理

來源路徑    W:\蘆竹共用\倉儲共用\1_理貨.庫存\  只搜尋 這目錄的下一層子目錄
然後比對 目的路徑 D:\0_自訂表單\Backup\倉儲共用 20190528\  這有倉儲共用且有當日日期的資料夾
來源路徑 如 子目錄 \.日班理貨換算表 含(理貨換算表)  複製"*5月*.xlsx"    到 D:\0_自訂表單\Backup\倉儲共用 20190528\日班理貨換算表
來源路徑 如 子目錄 \.佳乳                  不含(理貨換算表)  複製"*.*.xlsx"        到 D:\0_自訂表單\Backup\倉儲共用 20190528\.佳乳

是這樣嗎?
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2019-5-31 05:26 編輯

回復 11# PJChen
試試看
  1. Option Explicit
  2. Sub EX()
  3.     Dim SF As Object, Source_Folder As String, Target_Folder As String
  4.     Dim Source_File As String, E As Variant, E1 As Variant
  5.     Source_Folder = "W:\蘆竹共用\倉儲共用"
  6.     Target_Folder = "D:\0_自訂表單\Backup\倉儲共用 " & Format(Date, "YYYYMMDD")
  7.     If Dir(Target_Folder, vbDirectory) <> "" Then      '傳回這資料夾目錄
  8.         Set SF = CreateObject("Scripting.FileSystemObject")
  9.         For Each E In SF.GetFolder(Source_Folder)
  10.             For Each E1 In SF.GetFolder(Target_Folder)
  11.                 Source_File = E.Path & "\*.xlsx"
  12.                 If E.Path Like "*班理貨換算表" And E1.Path Like "*班理貨換算表" Then
  13.                     Source_File = E1.Path & "\*" & Format(Date, "M") & "月*.xlsx"
  14.                 End If
  15.                 SF.CopyFile Source_File, E1.Path
  16.             Next
  17.         Next
  18.     Else
  19.         MsgBox "找步到 " & vbLf & Target_Folder
  20.     End If
  21. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 做好事不能少我一人,做壞事不能多我一人。
返回列表 上一主題