Ошибка пути 5152 при сохранении документа Word с помощью Excel VBA

#excel #vba #macos #ms-word

#excel #vba #macos #ms-word

Вопрос:

Языковая версия: Microsoft Word / Excel версии 16.41
Операционная система: Mac OS Mojave 10.14.6

Я пытаюсь использовать Excel VBA для сохранения документа Word на своем рабочем столе.

Результат:

Ошибка времени выполнения 5152. Это недопустимое имя файла. Попробуйте одно или несколько из следующих действий:
-Проверьте путь, чтобы убедиться, что он был введен правильно
-Выберите файл из списка файлов и папок

Я использую Microsoft Excel версии 2008 и Microsoft Word версии 2008. Я использую раннее связывание и выбрал библиотеку объектов Microsoft Excel, Office и Word 16.0. (Библиотека объектов 16.0 кажется странной для версии 2008?) (Windows 10 Pro версии 2004. Подписка на Microsoft Office 365)

Я пытаюсь следовать этому руководству.

Строка с ошибкой:

 .ActiveDocument.SaveAs2 Environ("UserProfile") amp; "DesktopMovieReport.docx"
  

Мой код :

 Option Explicit

Sub CreateBasicWordReportEarlyBinding()

    Dim wdApp As Word.Application

    Set wdApp = New Word.Application
    With wdApp

        .Visible = True
        .Activate
        .Documents.Add
       
        With .Selection
            .ParagraphFormat.Alignment = wdAlignParagraphCenter
            .BoldRun
            .Font.Size = 18
            .TypeText "Best Movies Ever"
            .BoldRun
            .Font.Size = 12
            .TypeText vbNewLine
            .ParagraphFormat.Alignment = wdAlignParagraphLeft
            .TypeParagraph
        End With

        Range("A2", Range("A2").End(xlDown).End(xlToRight)).Copy
        .Selection.Paste            
        .ActiveDocument.SaveAs2 Environ("UserProfile") amp; "DesktopMovieReport.docx"
        .ActiveDocument.Close
        .Quit
    End With

   'Set wdApp = Nothing
End Sub
  

Комментарии:

1. Сначала попробуйте сохранить его в корневой папке, например: C:MovieReport.docx

2. Разве полное расширение не должно быть "C:Users" amp; Environ("UserProfile") amp; "DesktopMovieReport.docx" ?

3. @xwhitelight после попытки этого я получил ошибку времени выполнения ‘6294’ Метод ‘SaveAs2’ объекта ‘_Document’ не удался

4. @dwirony Я получил ту же ошибку 5152, когда попробовал это использовать. ActiveDocument. SaveAs2 «C:Users » amp; Environ(«Профиль пользователя») amp; » DesktopMovieReport.docx »

5. О чем .ActiveDocument.SaveAs Filename:="C:Users" amp; Environ("UserProfile") amp; "DesktopMovieReport.docx" ?

Ответ №1:

Необходимо использовать «ActiveDocument.SaveAs», а не «ActiveDocument.SaveAs2». Вы не можете использовать «ActiveDocument.Метод SaveAs2», если вы используете Office 2010 или более старую версию. Используйте следующий код, и я надеюсь, что ваша проблема будет решена.

 With wdApp  
   
   'Your codes...

   SaveName = Environ("UserProfile") amp; "DesktopMovieReport.docx"

   If .Version <= 12 Then
      .ActiveDocument.SaveAs SaveName
   Else
      .ActiveDocument.SaveAs2 SaveName
   End If
   
End With
  

Ответ №2:

Лучший способ сделать это (в любой версии) — найти правильный синтаксис для сохранения в папке Mac OS:

  • откройте файл
  • запишите макрос
  • сохраните файл (выберите папку)
  • остановите запись
  • отредактируйте макрос
  • посмотрите, как Word перевел его в VisualBasic

пример с Word 16 (2019)

 ActiveDocument.SaveAs2 FileName:= _ "/Users/myusername/anyfolder/nameofthefile" amp; DocNum amp; ".txt" _ , FileFormat:=wdFormatText, LockComments:=False, Password:="", _ AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _ EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _ :=False, SaveAsAOCELetter:=False, Encoding:=65001, InsertLineBreaks:= _ False, AllowSubstitutions:=False, LineEnding:=wdCROnly