2015-09-22 2 views
1

Как видно из названия говорит, я получаю эту ошибку компиляции:SaveAs2 дает "Ошибка компиляции: Метод или член данных не найден"

http://i.imgur.com/GqrGMkt.png

Мой код:

Sub PasteToWord() 

    Range("A1").Select 

    Do Until IsEmpty(ActiveCell) 

    Dim AppWord As Word.Application 

    Set AppWord = CreateObject("Word.Application") 
    AppWord.Visible = True 
    Sheets("Sheet1").Range(ActiveCell).Copy 
    AppWord.Documents.Add 
    AppWord.Selection.Paste 

    Application.CutCopyMode = False 

    AppWord.SaveAs2 "C:\Docs\MyDoc.pdf", 17 

    Set AppWord = Nothing 

    AppWord.Quit 

    Loop 

End Sub 

Отладчик выделяет .SaveAs2 как корень проблемы.

Я перешел в меню ссылок Excel VBA и убедился, что отмечены как «Библиотека объектов Microsoft Office 14.0», так и «Библиотека объектов Microsoft Word 14.0».

Что может быть причиной этой проблемы? Заранее спасибо.

ответ

1

.SaveAs2 - это метод объекта документа, а не объект приложения.

Попробуйте

AppWord.ActiveDocument.SaveAs2 "C:\Docs\MyDoc.pdf", 17 
+0

Высокий. Это сделал трюк. Я знаю, что это еще один вопрос, но теперь я получаю «Ошибка выполнения» 1004: «Определенная приложением или объектная ошибка», и она выделяет «Таблицы» («Лист1»). Диапазон (ActiveCell) .Copy' Является ли это проблемой для меня, используя ActiveCell в качестве диапазона? – jtchase08

+2

'ActiveCell' - это объект Range, который уже относится к листу. Просто обратитесь к этому так. – Rory

+1

@Rory избили меня :) –

Смежные вопросы