首页 > 解决方案 > 使用 VBA 搜索文件并将其移动到另一个文件夹

问题描述

也许有人可以帮助我。

我正在寻找一个在文件夹中搜索文件名关键字的 vba 代码,然后将这些找到的文件移动到 anthor 文件夹。

关键字存储在excel的A列中。

我使用了以下代码,它部分工作。问题是列 A 必须包含以下代码中的确切文件名。我希望 vba 搜索关键字。另一件事是必须移动文件而不是复制文件。如果文件已被移动,则 B 列中存在检查。

Sub Test()

Dim R As Range, r1 As Range
Dim SourcePath As String, DestPath As String, FName As String

SourcePath = "C:\Downloads\"
DestPath = "C:\Downloads\New folder\"
Set r1 = Range("A1", Range("A" & Rows.Count).End(xlUp))

For Each R In r1
FName = Dir(SourcePath & R)

 Do While FName <> ""

   If Application.CountIf(r1, FName) Then
      FileCopy SourcePath & FName, DestPath & FName

     R.Offset(0, 1).Value = FName

  Else

     MsgBox "Bad file: " & FName & " ==>" & FName & "<== "

  End If

   FName = Dir()
 Loop
Next
End Sub

标签: excelvba

解决方案


Dir如果您的范围仅包含文件的关键字,则可以在函数中使用通配符。像这样:

FName = Dir(SourcePath & "*" & R.Value & "*")

然后它将处理使用此关键字的所有文件。


推荐阅读