首页 > 解决方案 > 通过 FSO VBA - 文件没有移动,请通过我的代码,我不明白为什么文件没有移动。我正在尝试执行它,但消息框

问题描述

请仔细阅读我的代码,纠正我的错误,文件没有从一个文件夹移动到另一个文件夹。

Option Explicit
Sub MoveFiles()

Dim FSO As Object
Dim FromDir As String
Dim ToDir As String
Dim FExtension As String
Dim Fnames As String

FromDir = "C:\Users\B\Source Folder"
ToDir = "C:\Users\B\Destination Folder"

FExtension = "*.*"
Fnames = Dir(FromDir & FExtension)

If Len(Fnames) = 0 Then
MsgBox "No files or Files already moved" & FromDir
Exit Sub
End If

Set FSO = CreateObject("Scripting.FileSystemObject")

FSO.MoveFile Source:=FromDir & FExtension, Destination:=ToDir

End Sub

标签: vbafilesystemobject

解决方案


问题

\在末尾缺少 a FromDir,它将路径与文件名分开。

供您参考:&并没有真正结合路径和文件名,而只是连接两个字符串,因此它永远不会添加\自身。

修正可能性 1

您可以将其添加到 FromDir 的定义中:
FromDir = "C:\Users\B\Source Folder\"

修正可能性 2

将其动态添加到这些代码行中:

Fnames = Dir(FromDir & "\" & FExtension)

FSO.MoveFile Source:=FromDir & "\" & FExtension, Destination:=ToDir

另一种说法

您还应该FromDir与错误文本分开,如下所示:

MsgBox "No files or Files already moved: " & FromDir


推荐阅读