2017-04-20 4 views
0

Könnte mir bitte jemand sagen, was ich falsch mache, ich bin ziemlich neu in VBA und habe den folgenden Code. Ich möchte mehrere Excel-Dateien öffnen und die Registerkarte "Barzahlung" als PDF in einem bestimmten Ordner speichern. Das Problem, das ich habe, ist, dass es versucht, den Ordner in den Ordner "Test" und nicht den Ordner "Cells (r, 3)" zu speichern, damit ich einen Fehler erhalte, nachdem er die erste PDF-Datei gespeichert hat gleicher Name. Jede Hilfe wäre willkommen!So speichern Sie eine Datei mit dem Standort und Namen als Zelle Werte mit VBA

Sub Cash_PDF_() 

r = 2 

Do While Cells(r, 5) <> "" 

Workbooks.Open FileName:="H:\Investment\Fund Folders\" & Cells(r, 3) & "\" & Cells(r, 5), _ 
ReadOnly:=True, UpdateLinks:=0 

Sheets("Cash").Select 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:="C:\Users\Desktop\Test\" & Cells(r, 3) & "\Cash.pdf", _ 
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True 

ActiveWindow.Close SaveChanges:=False 

r = r + 1 

Loop 

End Sub 

Antwort

2

Cells, unqualifizierte wenn, bezieht sich auf das aktive Blatt. Sie ändern das aktive Blatt, so dass es sich nicht auf das bezieht, was Sie beabsichtigten.

Sub Cash_PDF_() 
    Dim ws As Worksheet 
    Dim wb As Workbook 
    Dim r As Long 
    Set ws = ActiveSheet 

    r = 2 

    Do While ws.Cells(r, 5) <> "" 

     Set wb = Workbooks.Open(FileName:="H:\Investment\Fund Folders\" & ws.Cells(r, 3) & "\" & ws.Cells(r, 5), _ 
         ReadOnly:=True, UpdateLinks:=0) 

     wb.Sheets("Cash").ExportAsFixedFormat _ 
         Type:=xlTypePDF, _ 
         FileName:="C:\Users\Desktop\Test\" & ws.Cells(r, 3) & "\Cash.pdf", _ 
         Quality:=xlQualityStandard, _ 
         IncludeDocProperties:=True, _ 
         IgnorePrintAreas:=False, _ 
         OpenAfterPublish:=True 

     wb.Close SaveChanges:=False 

     r = r + 1 

    Loop 

End Sub 
+0

Vielen Dank! – Jason

+0

Man diese unqualifizierten Anrufe sind eine verflixte Plage ... @Jason möchten Sie vielleicht [Rubberduck] (http://rubberduckvba.com) versuchen (ich bin stark in diesem OSS-Projekt beteiligt), kann es Ihnen helfen, zu finden diese Probleme (und mehr). –

+0

@ A.S.H - LOL - Ich wollte "schnellste Finger" eine Antwort, um näher an meine 10k zu kommen = so wurde die minimale Reparatur zuerst und dann aufgeräumt. Jetzt sollte ich besser die unqualifizierte 'Sheets'-Referenz aufräumen - das wird mich nerven, wenn ich es nicht behebe. – YowE3K

Verwandte Themen