早上好/下午/晚上,
我想为下面的代码提供一些语法帮助,或者指出我做得更好的方向,因为有一些事情不太正确。
我最初在文件夹宏中有一个列表文件,我已经调整了它以尝试做我想要的。
所以在这里,我有一个干文件名列表(strDesignDocs),我有一个顶级文件夹,我将找到这些文件的版本(combobox21.value)。
我将顶部文件夹路径和部分文件名称提供给ListMyFiles函数,希望仅出于测试目的,它将为我提供已找到的完整文件名的消息以及完整的文件夹路径。它确实在函数中打印消息,但希望它将它传递回调用函数,最终用其它方法执行。
使用以下代码:
TYIA
安迪
Dim iRow
Dim Counter
Dim myFile As Scripting.File
Sub ListFiles()
Dim WS1, WS2 As Worksheet
Dim strDesignDocs As Variant
On Error Resume Next
Set WS1 = Sheets("Data")
Set WS2 = Sheets("Clean_Up")
With WS1
Set strDesignDocs = .Range(.Cells(15, 1), .Cells(27, 1))
End With
For Each cell In strDesignDocs
strReturnValue = ListMyFiles(ComboBox21.Value, True, cell.Value)
Debug.Print strReturnValue
Next
End Sub
Function ListMyFiles(mySourcePath, IncludeSubfolders, sFileName)
Dim MyObject As Scripting.FileSystemObject
On Error Resume Next
Set MyObject = New Scripting.FileSystemObject
Set mySource = MyObject.GetFolder(mySourcePath)
For Each myFile In mySource.Files
If InStr(1, myFile.Name, sFileName) <> 0 Then
strReport = myFile.Name & " in " & myFile.Path
ListMyFiles = strReport
'Debug.Print strReport
Exit Function
End If
Next
If IncludeSubfolders Then
For Each mySubFolder In mySource.SubFolders
Call ListMyFiles(mySubFolder.Path, True, sFileName)
Next
End If
End Function