iT邦幫忙

0

移動文件到指定資料夾

各位大大我如何可以利用VBA將文件移動指定資料夾?
A欄是我想移動的文件
B欄是目標資料夾(資料夾是不同的)
https://ithelp.ithome.com.tw/upload/images/20201113/20122398YMR38lSsay.png
如果資料夾內有相的的文件就不用移動

以下是爬文找到的代碼是用來複製的但出現『路徑或存取錯誤』

Sub CopyFileto()
    Dim rng AS Range, oldFilename as String, newFilename as String

    For Each rng in Range("A2:A5001")
        oldFilename = rng.value  ' 檔案的原始路徑與檔名
        newFilename = rng.offset(,1).value  ' 檔案的新路徑與檔名
        FileCopy oldFilename, newFilename
    Next rng
end sub

求高手幫幫忙,有很多文件要歸案,一個一個人手放應該會放到脫臼

1 個回答

0
paicheng0111
iT邦高手 1 級 ‧ 2020-11-13 21:12:32

如果資料夾內有相的的文件就不用移動

這是甚麼意思?

另外,

  1. 你是要搬移還是複製?你問題說是搬移(移動),但是範例卻是複製。
  2. 檔案名稱不變嗎?

如果你想搬移且檔案名稱不變,下列程式可能可以幫你(未測試)。

Sub moveFiles()
    Dim rng AS Range, oldFilename as String, newFilename as String
    Dim onlyName As String
    
    For Each rng in Range("A2:A5001")
        oldFilename = rng.value  ' 檔案的原始路徑與檔名
        onlyName = Dir(oldFilename)
        If onlyName <> "" Then
            newFilename = rng.offset(,1).value & "\" & onlyName ' 檔案的新路徑與檔名
            If Dir(newFilename) = "" Then Name oldFilename As newFilename
        End If
    Next rng
end sub
看更多先前的回應...收起先前的回應...
AnakinTai iT邦新手 5 級 ‧ 2020-11-13 21:20:33 檢舉

我是想A欄的文件移動到B欄的目標資料夾內
檔案名稱不變(因我已經事前改好)

如果資料夾內有相的的文件就不用移動是指
如果目標資料夾內有相同命名的檔案就不用移過去

AnakinTai iT邦新手 5 級 ‧ 2020-11-13 21:37:49 檢舉

我試了,基本是可以的
但當A欄其中有文件已存在B欄的目標資料夾內,A欄文件(未在B欄的目標資料夾內的)無法移動。

修好了,你試試看吧。

AnakinTai iT邦新手 5 級 ‧ 2020-11-14 09:53:42 檢舉

是成功的.但有一問題.在執行後會出現(路徑或檔案存取錯誤)https://ithelp.ithome.com.tw/upload/images/20201114/20122398NPr5BnZkjM.png
https://ithelp.ithome.com.tw/upload/images/20201114/201223987p3W4OiDEH.png

有沒有可能newFilename出現不能成為路徑的字元,例如:?*\\等。
檢查B欄位看看

AnakinTai iT邦新手 5 級 ‧ 2020-11-15 16:22:11 檢舉

應該沒有吧。我是直接複製路徑的。他不能馬上完成。要等他出現了偵錯後就可以完成。

AnakinTai iT邦新手 5 級 ‧ 2020-11-24 15:21:03 檢舉

@ paicheng0111還是這個問題我的B欄是資料夾的路徑都不會有符號問題.

AnakinTai iT邦新手 5 級 ‧ 2020-11-24 16:41:40 檢舉

我好像找到問題了,因為路徑有中文字,而「中文字」是電腦無法辨識的,如:琼,咏

我要發表回答

立即登入回答