VBA RunTime Ошибка 445 - Application.FileSearch - PullRequest
0 голосов
/ 16 февраля 2019

У меня та же проблема, что и у друга по этой ссылке: http://www.vbforums.com/showthread.php?503199-RESOLVED-Opening-an-excel-file-in-VB-without-the-exact-name&highlight=open%20file%20excel

В принципе, я хотел бы открыть файл, я знаю только часть имени файла, используя VBA-Coding.

Я нашел приведенный выше веб-сайт с потенциальным решением, но, к сожалению, мой компилятор выдает ошибку времени выполнения 445

Sub openfile()
    Dim i As Integer
    With Application.FileSearch
        'Change the path to your path
        .LookIn = "C:\Temp"
        '* represents wildcard characters
        .FileName = "Sales_Report_1_4_2008*.xls"
        If .Execute > 0 Then 'Workbook exists
            'open all files that find the match
            For i = 1 To .FoundFiles.Count
                Workbooks.Open (.FoundFiles(i))
            Next i
        End If
    End With
End Sub

Может ли кто-нибудь помочь мне заставить этот код работать на Excek 2016 ??

Большое спасибо, ребята

1 Ответ

0 голосов
/ 17 февраля 2019

Я думаю, FileSearch больше не выпускается.Может использовать объект файловой системы.Может добавить ссылку на «Microsoft Scripting Runtime» и попробовать

Sub openfile()
    Dim Path As String
    Dim FSO As FileSystemObject
    Dim Fl  As File
    Dim Fld As Folder

    Path = "C:\temp\"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set Fld = oFSO.GetFolder(strPath)

    For Each Fl In Fld.Files
      If Ucase(Fl.Name) Like Ucase("Sales_Report_1_4_2008*.xls") Then
        Workbooks.Open (Fl.Path)
      End If
    Next Fl

    Set FSO = Nothing
    Set Fl = Nothing
    Set Fld = Nothing
End Sub

или еще более простой цикл с Dir функцией

    Sub openfile()
        Dim Path As String
        Dim Fname As String

        Path = "C:\temp\"
        Fname = Dir(Path & "Sales_Report_1_4_2008*.xls")
        Do While Fname <> ""
           Workbooks.Open (Path & Fname)
        Fname = Dir
        Loop

End Sub
...