2017-01-17 1 views

Antwort

0

Öffnen Sie ein cmd-Fenster in Ihrem Ordner und geben Sie dir /s /b >> filename.txt ein, um eine Klartextliste aller Dateien im Pfad zu erhalten. Das gibt eine Textdatei, die alle Dateien im Verzeichnis auflistet.

verwenden, die als Eingabe für die folgenden

Da Sie es auf 1000 Dateien tun werden, ich einen Haltepunkt bei doc.close gesetzt würde es auf den ersten zu testen, wenn ich du wäre.

Sub SaveAsDocX(FileListFullPath As String) 
    'for saving to new filename 
    Dim newname As String 
    'array of docs, items in that array, document object from those items 
    Dim docs As Variant 
    Dim item As Variant 
    Dim doc As Document 

    docs = getfiles(FileListFullPath) 

    For Each item In docs 
     If Right(item, 4) = ".doc" Then 
      Set doc = Application.Documents.Open(FileName:=item) 
      doc.Activate 

      newname = item & " - updated.docx" 

      'first save as new format then update compatibility, then save again 
      doc.SaveAs2 FileName:=newname, FileFormat:=wdFormatDocumentDefault 
      ActiveDocument.SetCompatibilityMode (wdCurrent) 
      doc.SaveAs2 FileName:=newname, FileFormat:=wdFormatDocumentDefault 

      doc.Close 
     End If 
    Next 
End Sub 



Function getfiles(Optional FileName As String = "Dir.txt") 
    Dim FileList() As String 

    Open FileName For Input As #1 
    FileList = Split(Input$(LOF(1), #1), vbCrLf) 
    Close #1 

    getfiles = FileList 

End Function 
Verwandte Themen