vba 将文件从一个文件夹移动到另一个文件夹

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/38456928/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-08 10:31:54  来源:igfitidea点击:

move files from one folder to another

excelvba

提问by Rahul

actually I am searching for code to move excel files from one folder to another if there is any way to do so Please someone help me. I am very sorry but I dont know how to do coding as I have never used VBA in fact I see it for the first time.

实际上,如果有任何方法,我正在寻找将excel文件从一个文件夹移动到另一个文件夹的代码请有人帮助我。我很抱歉,但我不知道如何进行编码,因为我从未使用过 VBA,事实上我是第一次看到它。

I will be grateful to you

我会感激你

回答by Arun Banakar

Sub MoveFiles()
    Dim FSO As Object
    Dim SourceFileName As String, DestinFileName As String

    Set FSO = CreateObject("Scripting.Filesystemobject")
    SourceFileName = "C:\Users\Jun.xlsx"
    DestinFileName = "C:\Users\Desktop\Jun.xlsx"

    FSO.MoveFile Source:=SourceFileName, Destination:=DestinFileName

    MsgBox (SourceFileName + " Moved to " + DestinFileName)
End Sub

回答by Karthick Gunasekaran

Try with the below code

试试下面的代码

Sub test()
    Set fso = CreateObject("scripting.filesystemobject")
    fso.MoveFile Source:="C:\work\test1.xlsx", Destination:="c:\work\movecheck\" ' replace with source and destination as required.
End Sub

回答by Julian Kuchlbauer

You can use the Filesystemobject:

您可以使用文件系统对象:

Dim FSO as Object
Set FSO = CreateObject("Scripting.Filesystemobject")
FSO.MoveFile("SourceFileName", "TargetFileName")

Feel free to comment, if you need further instructions.

如果您需要进一步的说明,请随时发表评论。

回答by CHIN

Sub move_data()
    'Move test data to folder

    Dim FSO As Object
    Dim FromPath As String
    Dim ToPath As String
    Dim Fdate As Date
    Dim FileInFromFolder As Object


    MkDir "D:\TEST\"        'Create new folder name TEST in D:
    FromPath = "E:\test\"   'Source files
    ToPath = "D:\TEST\"     'Target destination

    Set FSO = CreateObject("scripting.filesystemobject")

    If FSO.FolderExists(FromPath) = False Then
        MsgBox FromPath & " doesn't exist"
        Exit Sub
    End If

    For Each FileInFromFolder In FSO.getfolder(FromPath).Files
        FileInFromFolder.move ToPath
    Next FileInFromFolder

End Sub

回答by Sharunas Bielskis

Below is code which moves only Excel (xlsx) files from source folder into destination folder. Other types files will be left in the destination folder.

下面是仅将 Excel (xlsx) 文件从源文件夹移动到目标文件夹的代码。其他类型的文件将保留在目标文件夹中。

Sub MoveFiles()

Dim sourceFolderPath As String, destinationFolderPath As String
Dim FSO As Object, sourceFolder As Object, file As Object
Dim fileName As String, sourceFilePath As String, destinationFilePath As String

Application.ScreenUpdating = False

sourceFolderPath = "D:\SourceFolder"
destinationFolderPath = "D:\DestinationFolder"

Set FSO = CreateObject("Scripting.FileSystemObject")
Set sourceFolder = FSO.Getfolder(sourceFolderPath)

For Each file In sourceFolder.Files
    fileName = file.Name
    If InStr(fileName, ".xlsx") Then ' Only xlsx files will be moved
        sourceFilePath = file.Path
        destinationFilePath = destinationFolderPath & "\" & fileName
        FSO.MoveFile Source:=sourceFilePath, Destination:=destinationFilePath
    End If ' If InStr(sourceFileName, ".xlsx") Then' Only xlsx files will be moved
Next

'Don't need set file to nothing because it is initialized in for each loop 
'and after this loop is automatically set to Nothing
Set sourceFolder = Nothing
Set FSO = Nothing

End Sub

If you need move only one file the best solution is:

如果您只需要移动一个文件,最好的解决方案是:

Name sourceFolderPath & fileName As destinationFilePath