所以我一直在研究代码,但我坚持不懈。基本上我的代码调用“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个不同的错误,一个是错误的文件名,另一个是路径/文件访问错误。
有人能告诉我我哪里出错了,和/或指出我正确的方向吗?
再次感谢