2017-06-12 7 views
0

Ich arbeite durch einen Excel-VBA-Makro, der durch ein Blatt iteriert und dynamische Formeln in bestimmte Zellen einfügt. Die Formel bleibt unverändert, muss jedoch auf eine externe Arbeitsmappe verweisen, die sich häufig ändert.VBA in Excel - Übergeben der externen Arbeitsmappe an die Arbeitsblattfunktion

Am Anfang von meinem Sub, frage ich nach Benutzereingabe, wo der Benutzer die Datei auswählt. Ich öffne diese Datei und benutze sie dann. Das funktioniert ganz gut, aber ich kann nicht herausfinden, wie man dieses Arbeitsbuch in einer Formel richtig referenziert.

Mein Code, abgespeckte nur auf die Linien in Frage:

MsgBox ("Select the PO items workbook sheet with key in column A.") 
POI_inputfile = Application.GetOpenFilename 
Set po_items = Workbooks.Open(POI_inputfile, False) 
Do Until i = bottom_cell 
    'lookup of MC against PO line item 
    wb_out.Worksheets("Sheet1").Range("c2").Offset(i).Formula = "=VLOOKUP(H" & i + 2 & "&I" & i + 2 & ",'[" & poi_importfile & "]Export'!$A:$E,5,FALSE)" 
     i = i + 1 
Loop 

Ich denke, die Frage ist, wie ich diese Formel bin Umgang und in der Arbeitsmappe vorbei, aber ich bin mir nicht sicher, was ich m falsch machen.

Hilfe geschätzt!

+0

'POI_inputfile' als Variable im Vergleich zu' poi_importfile' in Ihrer Formel. Verwenden von [OptionExplicit] (https://stackoverflow.com/documentation/excel-vba/1107/vba-best-practices/3554/always-use-option-explicit#t=201706121825028747477) am Anfang jedes Moduls und kompilieren Code wird Hilfe bei diesen Problemen. –

+1

Ersetzen Sie 'poi_importfile' durch' po_items.Name'. –

Antwort

1

Nur um dies als geschlossen zu markieren - beide Kommentare zu meiner ursprünglichen Frage waren korrekt, aber A.S.H war richtig, dass ich die .Name-Eigenschaft verwenden sollte.

Verwandte Themen