将包含关键字的文件从子文件夹复制到包含相同关键字

时间:2017-04-18 16:40:56

标签: excel vba excel-vba

所以我一直在研究代码,但我坚持不懈。基本上我的代码调用“GetFolder”获取我想要的目录并将该字符串放入1,1,然后调用“compileDSoutputsPrompt”,提示用户输入最多9个数字(可以是任何数字但是现在我会说100 ,450,900)并将它们粘贴在第1行第i列,从第2列开始。

^这一切都很好。然后我使用DSoutputsCompiler来获取这些用户输入,并在与Cells(1,1)相同的目录中创建相应的文件夹。好的,这也有效。

现在我想查找excel文件,包含这些用户输入的“keywords”/“keynumbers”,如果你愿意,在我的Cells(1,1)目录的子文件夹中,并将它们复制到新创建的包含相同的“关键字”/“keynumber”。

我查看了File searching in VBA但是,它对我来说并不适用,因为我无法将文件实际复制。

非常感谢任何帮助,请参阅下面的代码!

谢谢你的时间!

Sub DSoutputsCompiler()


Dim sPath As String
Dim sFil As String
Dim strName As String


 Call GetFolder

 If Cells(1, 1) = 0 Then

 Exit Sub

 End If

 Call compileDSoutputsPrompt

 If Cells(1, 2) = 0 Then

 Exit Sub

 End If

 Dim j As Integer
 Dim i As Integer
 Dim ResultsFile

   Set FSO = CreateObject("scripting.filesystemobject")

 For i = 2 To 9

     If (Cells(1, i) <> Empty) Then


          MkDir (Cells(1, 1) & "CompiledDSOutputs" & Cells(1, i))


sPath = Cells(1, 1)
sFil = Dir(sPath & "*" & Cells(1, i) & "*.xl*")

Do While sFil <> ""
    strName = sPath & sFil
    sFil = Dir

'So I guess here is where I would copy the file and paste it to the newly created folder

    j = j + 1
Loop

    End If
  Next i

 End Sub

编辑:我还需要新文件夹中的确切文件名。我已经取代了这个:

Do While sFil <> ""
    strName = sPath & sFil
    sFil = Dir

    j = j + 1
Loop

有了这个:

SourceFile = Cells(1, 1) & "*" & Cells(1, i) & "*.xl*"

Filename = Replace(SourceFile, Cells(1, 1), "")

DestinationFile = Cells(1, 1) & "CompiledDSOutputs" & Cells(1, i) & "\" & Filename
FileCopy(SourceFile, DestinationFile)

我运行了2次,得到了2个不同的错误,一个是错误的文件名,另一个是路径/文件访问错误。

有人能告诉我我哪里出错了,和/或指出我正确的方向吗?

再次感谢

0 个答案:

没有答案