Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用VBA搜索文件并将其移动到其他文件夹_Excel_Vba - Fatal编程技术网

Excel 使用VBA搜索文件并将其移动到其他文件夹

Excel 使用VBA搜索文件并将其移动到其他文件夹,excel,vba,Excel,Vba,也许有人能帮我 我正在寻找一个vba代码,它在文件夹中搜索文件名的kewords,然后将这些找到的文件移动到antor文件夹 关键字存储在excel的A列中 我使用了下面的代码,它部分工作。问题是列A必须在下面的代码中包含确切的文件名。我希望vba搜索关键字。另一件事是文件必须移动,而不是复制。如果文件已被移动,则在B列中有检查 Sub Test() Dim R As Range, r1 As Range Dim SourcePath As String, DestPath As String

也许有人能帮我

我正在寻找一个vba代码,它在文件夹中搜索文件名的kewords,然后将这些找到的文件移动到antor文件夹

关键字存储在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
子测试()
调光R为量程,r1为量程
将SourcePath设置为字符串,将DestPath设置为字符串,将FName设置为字符串
SourcePath=“C:\Downloads\”
DestPath=“C:\Downloads\New folder\”
设置r1=范围(“A1”,范围(“A”和行数)。结束(xlUp))
对于r1中的每个R
FName=Dir(源路径&R)
当FName“”时执行
如果Application.CountIf(r1,FName)那么
FileCopy源路径和FName、DestPath和FName
R.偏移量(0,1)。值=FName
其他的

MsgBox“坏文件:&FName&“==>”&FName&“如果您的范围仅包含文件的关键字,则可以在
Dir
函数中使用通配符。如下所示:

FName=Dir(SourcePath&“*”&R.Value&“*”)


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

到目前为止,您尝试了什么,在哪里遇到了问题?嗨,Alex,请参阅我编辑的帖子。我已经测试了您的代码,我收到了错误的文件消息,其中文件名与A列中使用的关键字对应。它仅在A列中使用完整文件名时才起作用。这是因为if语句和countif函数。在这里,您可以检查文件名是否在列A中,但它当然不在列A中,因为列A只包含关键字。是的,确实如此。我已经删除了if语句。代码按原样运行。谢谢!