Простой и быстрый способ
Вы можете использовать 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
Примечание : обратите внимание, что этот метод может занять очень много времени для поиска вашего файла. Используйте это, только если нет альтернатив или выберите корневой каталог, в котором не много папок / файлов.
Надеюсь, это поможет.