Почему мой код Excel VBA не сохраняет открытый документ Word? - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть модуль, который я использую для l oop через несколько папок, нахожу документы Word с определенным именем, принимаю все изменения и удаляю комментарии. Однако мой код не работает, когда я использую метод .SaveAs2 для сохранения файла Word в качестве имени файла Word + '_FINAL'. Я получаю сообщение «Ошибка времени выполнения 4605: ошибка приложения или объекта», и оно не запускается. Вот мой код ниже:

Private Sub Main()
    Dim sPath As String     ' Contains folder path of where this file is located
    Dim FileSystem As Object

    ' Set folder path to where this file is located
    sPath = Application.ActiveWorkbook.Path

    Set FileSystem = CreateObject("Scripting.FileSystemObject")
    BrowseFolder FileSystem.GetFolder(sPath)
End Sub

Public Sub BrowseFolder(Folder)
    Dim SubFolder

    For Each SubFolder In Folder.SubFolders
        BrowseFolder SubFolder
    Next

    Dim File

    For Each File In Folder.Files
        If InStr(File, "Narrative_updated.doc") <> 0 Then
            ' Pass onto Word sub
             FinalizeWord (File)
        End If
    Next
End Sub

Public Sub FinalizeWord(File)
    Dim appWord As Word.Application
    Dim sFileName As String

    Set appWord = New Word.Application

    appWord.Visible = True
    appWord.Documents.Open fileName:=File
    appWord.DisplayAlerts = False
    appWord.Activate

    ' Set fileName to contain document name, will be used to save as final
    sFileName = appWord.ActiveDocument.Path & "\" & Left(appWord.ActiveDocument.Name, InStrRev(appWord.ActiveDocument.Name, ".") - 1) & "_FINAL.docx"

    ' Set default view to print layout view in case that the document is protected
    appWord.ActiveDocument.ActiveWindow.View.Type = wdPrintView

    ' Accept all track changes
    appWord.ActiveDocument.Revisions.AcceptAll

    ' Remove all comments
    appWord.ActiveDocument.DeleteAllComments

    ' Save As filename_FINAL.docx
    appWord.ActiveDocument.SaveAs2 sFileName, FileFormat:=wdFormatDocumentDefault
End Sub

У кого-нибудь есть какие-нибудь решения, которые могут помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...