- 帖子
- 913
- 主題
- 150
- 精華
- 0
- 積分
- 1089
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- office 2019
- 閱讀權限
- 50
- 性別
- 女
- 註冊時間
- 2011-8-28
- 最後登錄
- 2023-7-19
 
|
5#
發表於 2019-5-27 17:50
| 只看該作者
回復 4# GBKEE
G大,
不好意思,因為我看過的程式碼實在不多,也第一次看到這種寫法,讓我不知如何套入我需要的程式,已經多次嘗試各種組合,但沒有一次可以run完這個程式,它使終都卡在路徑這一關,就無法執行了,可以勞煩G幫忙看下嗎?- Option Explicit
- Dim sf As Object
- Sub Ex()
- Set sf = CreateObject("Scripting.FileSystemObject")
- Ex_SubFolder "W:\蘆竹共用\倉儲共用\1_理貨.庫存\1.日班理貨換算表\*5月*.xlsx" '**呼叫程式 參數為 指定的資料夾
- End Sub
- Sub Ex_SubFolder(xFolder As String) '**參數為文字
- Dim xSub As Object, E As Variant
- Set xSub = sf.GetFolder(xFolder).SubFolders
- xSub "W:\蘆竹共用\倉儲共用\1_理貨.庫存\1.日班理貨換算表\*5月*.xlsx"
- '**SubFolders : 傳回包含所有資料夾的一個 Folders 集合物件
- For Each E In xSub
- Ex_xFiles E '**呼叫程式 傳遞參數 Folder 物件
- '**傳遞下一層的資料夾***
- Ex_SubFolder E.Path '**呼叫程式 傳遞參數 SubFolders 集合物件
- Next
- End Sub
- Sub Ex_xFiles(xF As Variant) '**參數為文字
- Dim E As Variant
- Dim a
- a = Format(Date, "yyyymmdd") '當日
- Debug.Print a
- For Each E In xF.Files '**Files 集合物件 : 資料夾內的所有 File 物件的集合物件
- Debug.Print E.SHORTPATH = "W:\0_自訂表單\Backup\" & "*" & a & "*\" '** E.SHORTPATH : 檔案的完整路徑名稱
- '**在這裡套入你所需的程式碼
- sf.CopyFile SubFolders, xFiles
- Set sf = Nothing
- '************
- Next
- End Sub
複製代碼 另外原先的這個程式,對我來說其實是比較淺顯易懂的,可否也同時請教:
1. 這個程式的路徑用固定式的寫法,可以非常快速的copy檔案到指定路徑
2. 當目的路徑為年月日為變動資料夾時,卻無法copy
3. 請問這個寫法還有救嗎?可以稍加修改目的資料夾為年月日變動式的嗎?
4. 我一次想備份多個來源不同的資料夾,到多個不同目的資料夾,是否可以共用Dim fso As Object, souf$, desf$, P$, a的宣告?這樣程式會混淆而無法複製資料嗎?- Sub autocopy()
- Dim fso As Object, souf$, desf$, P$, a
- a = Format(Date, "yyyymmdd") '本月當日
- Debug.Print a
- Path = "W:\0_自訂表單\Backup\"
- P = Path & "*" & a & "*" & "\" '目的路徑為年月日為變動資料夾時,無法copy
- Set fso = CreateObject("Scripting.FilesyStemObject") '定義fso為物件
- souf = "W:\蘆竹共用\倉儲共用\1_理貨.庫存\1.日班理貨換算表\*5月*.xlsx"
- desf = P '目的路徑為年月日為變動資料夾時,無法copy
- fso.CopyFile souf, desf
- Set fso = Nothing
- End Sub
複製代碼 |
|