2016-08-21 5 views
-1

Я ищу в папке для определенного файла в .docx и хочу его открыть. Я помещаю имя X в поле ввода, переходим к Sheet Y, смотрим на следующую правую ячейку X и открываем это как Word (следующая ячейка справа - это файл в слове, который я хочу открыть). Он работает, но проблема в том, что целевой Word Doc может быть в нескольких подпапках. Есть ли быстрый способ поиска в этой подпапке?VBA, Поиск в подпапках

Private Sub CommandButton1_Click() 
    On Error GoTo ErrorHandling 
    Application.ScreenUpdating = False 
    Dim AppWD As Object 
    Dim SearchX As String 
    Dim SearchArea As Range 
    Dim Y As String 
    Dim sPath As String 

    sPath = "C:\Users\VS\Desktop\test" 

    SearchRule = InputBox("X") 
    Set SearchArea = Sheets("Look").Range("A:A").Find(what:=SearchX, _ 
     LookIn:=xlFormulas, lookat:=xlWhole) 

    ActiveWindow.Visible = True 
    Target = SearchArea.Offset(0, 1).Value 
    Set AppWD = CreateObject("Word.Application") 
    AppWD.Visible = True 
    AppWD.documents.Open (sPath & "\" & Target & "." & "docx") 

    ErrorHandling: Exit Sub 
End Sub 

ответ

1

Мое взятие на поиск Повсеместно ПОДРАЗДЕЛОВ

Sub searchSub() 
    Dim fso As FileSystemObject, fFile As File, fFolder As Folder 
    Dim fSubFolder As Folder, fPath As String, FileToSearch As String 

    Set fso = New FileSystemObject 
    FileToSearch = "SomeDocument.docx" 
    fPath = ThisWorkbook.Path 
    Set fFolder = fso.GetFolder(fPath) 

    For Each fFolder In fFolder.SubFolders 
      Set fSubFolder = fso.GetFolder(fFolder.Path) 

      For Each fFile In fSubFolder.Files 
       If fFile.Name = FileToSearch Then 
        'do something with file 
       End If 
      Next fFile 
    Next fFolder 
End Sub 
Смежные вопросы