2016-03-29 16 views
1

Çalışma sayfalarını tek bir PDF dosyasına tek bir kod ile yazdırıyorum. "Kaydedilmedi Belge" ve ayıklama kodu burada beni alır: Bu aynı excel dosyasından PDF başka baskı çalışırsanız açık bu PDF dosyası ile bir VB hatası alıyorum BURAYAExcel VBScript, basılmış ve daha önce yazdırılmış PDF'yi başka bir PDF'ye yazdırmadan önce kapatmak için

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:= _ 
    strFilename & " " & wedate_text & " Time", Quality:=xlQualityStandard, _ 
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ 
    True 

KOD IS:

Sub PrintAnadarkoTicketsToPDF() 
Worksheets("Cover").Visible = False 
Application.Calculation = xlCalculationManual 
Application.ScreenUpdating = False 
Application.DisplayStatusBar = False 
Application.EnableEvents = False 
Dim strFilename As String 
Dim rngRange As Range 
Dim wedate As Date 
Dim wedate_text As String 
Set rngRange = Worksheets("Cover").Range("A5") 
strFilename = rngRange.Value 
wedate = Worksheets("Cover").Range("B24").Value 
wedate_text = Format$(wedate, "mm.dd.yyyy") 
Dim myArray() As Variant 
    Dim i As Integer 
    Dim j As Integer 
    j = 0 
    For i = 1 To Sheets.Count 
     If Sheets(i).Visible = True Then 
      ReDim Preserve myArray(j) 
      myArray(j) = i 
      j = j + 1 
     End If 
    Next i 
    Sheets(myArray).Select 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:= _ 
    strFilename & " " & wedate_text & " Time", Quality:=xlQualityStandard, _ 
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ 
    True 
Worksheets("Cover").Visible = True 
Sheets(1).Select 
Application.Calculation = xlCalculationAutomatic 
Application.ScreenUpdating = True 
Application.DisplayStatusBar = True 
Application.EnableEvents = True 
End Sub 

Sorum şu: Bu ikinci PDF'yi komut dosyasını çökertmeden nasıl yazdırabilirim? Önceki PDF'yi kapatmak veya farklı bir dosya adıyla ikinci PDF'yi oluşturmak istiyorum. Önerileriniz için teşekkürler. Randy

+0

[bu] (http://stackoverflow.com/questions/25714915/check-if-a-certain-pdf-file-is-open-and-close-it) çözümünü denediniz mi? –

+0

Sanırım, uzantıyla birlikte geçerli bir dosya adı belirtmiyorsunuz, "c: \ path \ filename.pdf" gibi geçerli bir dosya adı verin. –

+0

@Kiran Maroju Dosya adı, koddaki hücre referansları ile birleştiriliyor. – Randy

cevap

0

Neden gizli olmayan sayfaların sayısını sayan bir döngüye sahip olmak istediğinizden emin değilim. Ayrıca, bu döngü içindeki sayfaları da dışa aktarabilirsiniz. aynı dosyaya kurtarmaya çalışıyor çünkü

For i = 1 To Sheets.Count 
    If Sheets(i).Visible = True Then 
     Sheets(i).ExportAsFixedFormat Type:=xlTypePDF, filename:= _ 
      strFilename & Trim(Str(i)) & " " & wedate_text & " Time", Quality:=xlQualityStandard, _ 
      IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ 
      True 
    End If 
Next i 

da Not dosya adına çalışma kitabı numarasının eklenmesi: Bu senin sorunu giderebilir.

+0

Tüm sayfaları tek bir PDF'ye yazdırmam gerekiyor. Bu, her bir sayfa için ayrı PDF yazdırır. – Randy

+0

Bu durumda, verileri tek bir sayfaya koymak isteyebilirsiniz. Yeni bir sayfa oluşturmak, verileri içine koymak ve tek bir dosya olarak dışa aktarmayı bitirdiğinizde silmek için bile gidebilirsin. Tabii ki, bütün bunları kodunuzda yapabilirsiniz. Bir çalışma sayfasında 'ExportAsFixedFormat 'yazarsanız, bunun dışında tek bir dosya alırsınız. –