#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