2013-06-06 19 views
0

У меня возникла проблема с сохранением нескольких рабочих листов в формате pdf. Я просмотрел этот сайт (и другие) и нашел аналогичный код тому, что я использовал. Тем не менее, код, который я модифицировал, чтобы более точно напоминать Save multiple sheets to .pdf и http://www.vbaexpress.com/kb/getarticle.php?kb_id=160 вместе.Сохранить рабочий лист как PDF

Однако, я столкнулся с ошибкой в ​​моей последней строке «424: Object Required». Если бы вы могли направить меня в правильном направлении, это было бы очень признательно!

Sub SaveAs() 

Dim Fname As String 
Dim Fpath As String 

    Fname = Sheets("Sheet1").Range("FT5").Text 'The Cell I want to use as my file name 
    Fpath = "C:" 'my location 

    ThisWorkbook.Sheets(Array("Sheet 1", "Sheet 2")).Select 'My selected tabs 

    ActiveSheets.ExportAsFixedFormat Type:=xlTypePDF, _ 
     FileName:=Fpath & "\" & Fname & ".pdf", _ 
     Quality:=xlQualityStandard, _ 
     IncludeDocProperties:=True, _ 
     IgnorePrintAreas:=False, _ 
     OpenAfterPublish:=True 'My issue is with this line.... 
End Sub 

ответ

1

Там нет такого объекта, как ActiveSheets, поэтому ваша последняя строка действительно вызывает ошибку.

Заменить ActiveSheets либо ActiveWindow.SelectedSheets, если вы хотите просто напечатать то, что пользователь в настоящее время выбрал или Sheets("Sheet 1", "Sheet 3", "Sheet ..."), если вы хотите, чтобы выбранные листы с кодом.

+0

Я выбрал ваш правильный ответ; однако просто удалить «s» с конца ActiveSheets было всем, что мне нужно было сделать. Спасибо, что помог мне с Питером! – user2437803

+0

Полезно знать! На самом деле, снова посмотрев на ваш код, я бы рекомендовал просто объединить две последние строки в 'ThisWorkbook.Sheets (Array (« Лист 1 »,« Лист 2 »)). ExportAsFixedFormat (...' –

+0

Спасибо, за давая мне знать, я могу это сделать! Я думаю, что я оставлю это так, как есть. Я хочу, чтобы иметь возможность легко редактировать свой массив! – user2437803