2017-07-06 112 views
0

我對這個網站相當陌生,這是我的第一篇文章。在這裏,我們去: 我正在VBA上寫一個相當簡單的代碼,它不需要任何東西來替換某個特定的鏈。我已經找到了這一部分,但是我想在包含子文件夾的大文件夾中的所有文件上操作該代碼....我在前面看到類似的問題,但它對我不起作用因爲我試圖在代碼中輸入「If」來驗證文件是否是文件,如果是,則調用操作(secondSubRoutine)誰在文件上執行所需的任務。如果有人能告訴我爲什麼它無法找到文件的文件,這將是非常有益的!在文件夾和所有子文件夾中的所有文字文件上操作任務VBA

Aurelion。

Sub domino() 

Dim FileSystem As Object 
Dim HostFolder As String 

HostFolder = "C:\CLIENTS" 

Set FileSystem = CreateObject("Scripting.FileSystemObject") 
DoFolder FileSystem.GetFolder(HostFolder) 
End Sub 
Sub DoFolder(Folder) 
    Dim SubFolder 
    For Each SubFolder In Folder.SubFolders 
     DoFolder SubFolder 
    Next 
    Dim File 
    For Each File In Folder.Files 

     If File.Name = "*.docx" Then 

      Documents.Open FileName:=File 

      Call secondSubRoutine 

      ActiveDocument.Save 
      ActiveDocument.Close 

     ElseIf File.Name = "*.doc" Then 


      Documents.Open FileName:=path & File 

      Call secondSubRoutine 

      ActiveDocument.Save 
      ActiveDocument.Close 

     End If 

    Next 

End Sub 
+1

[遞歸枚舉文件夾和文件(https://stackoverflow.com/documentation/vba/990/scripting-filesystemobject/10411/recursively-enumerate-folders-和文件#t = 20170706200346311142)使用FSO,在Documentation.SO。 –

回答

1

試試這個:

For Each File In Folder.Files 
    If Right(File.Name, 5) = ".docx" Or Right(File.Name, 4) = ".doc" Then 

     Documents.Open FileName:=File.Path 

     Call secondSubRoutine 

     With ActiveDocument 
      .Save 
      .Close 
     End With 
    End If 
Next 
相關問題