2016-03-22 18 views
0

VBA'da yeniyim ve dosyamın temel adını kullanarak dosyamı otomatik olarak PDF dosyası olarak kaydedecek bir makro oluşturmaya çalışıyorum. Bu konu çeşitli sitelerde oldukça sınırlıydı, bu yüzden ihtiyacım olan kodun çoğunu alabiliyordum ama bir sebepten ötürü son cümlede takılıyorum. Dosya adını PDF'ye dosya adı ve belirli bir dosya yolunu kullanarak kaydetme

Sub SaveAsPDF() 

Dim SaveDirectory As String 
Dim SaveFileName As String 
Dim BaseName As String 
Dim fso 

SaveDirectory = Environ("Userprofile") & "\Dropbox\Operations\VBA Projects\" 

Set fso = CreateObject("Scripting.FileSystemObject") 

BaseName = fso.GetBaseName(ActiveWorkbook.Name) 

SaveFileName = SaveDirectory & BaseName & ".pdf" 

Sheets(Array("Page1", "Page2")).ExportAsFixedFormat Type:=xlTypePDF, _ 
               FileName:=SaveFileName, _ 
               Quality:=xlQualityStandard, _ 
               IncludeDocProperties:=True, _ 
               IgnorePrintAreas:=False, _ 
               OpenAfterPublish:=False 

End Sub 

Bütün kodu ile hata ayıklama

, bu son ifadesi vurgulandığına: İşte ben bugüne kadar ne var. Ben "m ne yanlış yaptığını emin değilim. Nedense

+1

o atmak neyi hata – BruceWayne

+0

Çalışma zamanı hatası '438':.? sadece benim için çalışıyor – MilesToGoBeforeISleep

cevap

1

, ExportAsFixedFormat yöntem yaprak bir dizi doğrudan çalışmaz.

aşağıda (nadir vakalardan biri Select ve Activate var çalışacaktır) Excel VBA gerekli olan o çizgiyi vurgular zaman

Sheets(Array("Page1", "Page2")).Select 
Sheets("Page1").Activate 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ 
               FileName:=SaveFileName, _ 
               Quality:=xlQualityStandard, _ 
               IncludeDocProperties:=True, _ 
               IgnorePrintAreas:=False, _ 
               OpenAfterPublish:=False 
+3

Nesne bu özelliği veya yöntemi desteklemiyor aktif statem olmadan ent - Size çok benzer bir cevap vermek üzereydim :) Belki de tamamen nitelikli referanslar kullandığım için? ThisWorkbook.Sheets (Array ("Sayfa1", "Sayfa2")) – Miqi180

+1

Brilliant'ı seçin. Sağol Scott. Miqi ile Activate ifadesinin gerekli olmadığını kabul ediyorum. – MilesToGoBeforeISleep

+0

[Çalıştırma kitabında yalnızca bir dizi sayfa yazdırmak istiyorsanız, bunu seçin ve etkinleştirin bile gerekli değildir.] (Http://stackoverflow.com/a/36107539/4088852) – Comintern

İlgili konular