我需要更新代码,以便无论文件位于哪个文件夹中都可以找到它们。
我从一个名为DB Templates
的特定文件夹中获得了文件,但我需要调整代码,以便无论该文件夹位于桌面还是文档等中,都可以利用这些文件。
我当前的代码是:
Environ("USERPROFILE") & "\Desktop\DBTemplates\matrix.csv"
答案 0 :(得分:2)
您可以像这样使用Function
来检查文件是否存在:
Function FileExists(FilePath As String) As Boolean
Dim TestStr As String
TestStr = ""
On Error Resume Next
TestStr = Dir(FilePath)
On Error GoTo 0
If TestStr = "" Then
FileExists = False
Else
FileExists = True
End If
End Function
此时,您可以简单地尝试加载文件,如本例所示:
desktopPath = Environ("USERPROFILE") & "\Desktop\DBTemplates\matrix.csv"
documentsPath = Environ("USERPROFILE") & "\Documents\DBTemplates\matrix.csv"
if FileExists(desktopPath) then loadFile(desktopPath)
if FileExists(documentsPath) then loadFile(documentsPath)
'Add any other Path you want to check...
使用此方法,您可以搜索文件,然后将其加载。
Sub FindMyFile()
Debug.Print Search(Environ("USERPROFILE"), "matrix.csv")
End Sub
Function Search(sPath As String, fileToFind As String) As String
Dim FSO As New FileSystemObject
Dim myFolder As Folder
Dim mySubFolder As Folder
Dim myFile As File
Set myFolder = FSO.GetFolder(sPath)
For Each mySubFolder In myFolder.SubFolders
On Error Resume Next
For Each myFile In mySubFolder.Files
If myFile.Name = fileToFind Then
Debug.Print myFile.Name & " in " & myFile.Path 'Or do whatever you want with the file
Exit For
End If
Next
Search = Search(mySubFolder.Path, fileToFind)
Next
End Function
注意:请注意,此方法可能需要很长时间(很长时间)才能找到文件。仅在没有其他选择或选择没有很多文件夹/文件的根目录时使用此选项。
希望这会有所帮助。