2016-10-21 3 views
0

Hellow Alle, die unter den ursprünglichen aufgezeichneten Anweisung funktioniert:Runtime Error Nach Variable Einfügen in die Formel Statement

Dim lastrow, prodflow As String 

lastrow = Range("C65536").End(xlUp).Row  'Determine last row where data ends 

Range("G2:G" & lastrow).Formula = "=VLOOKUP(LEFT(RC[-1],FIND(""-"",RC[-1],1)+4),'[Process Flows.xlsx]TABLE_X'!R1C1:R999C70,14,FALSE)" 

Jedoch, wenn ich TABLE_X mit einer variablen prodflow versucht zu ersetzen, wird ein Laufzeitfehler in meiner Formel-Anweisung:

Dim lastrow, prodflow As String 

lastrow = Range("C65536").End(xlUp).Row  'Determine last row where data ends 
prodflow = Cells(2, 2)      'Read value in cell B2 and store as string 

Range("G2:G" & lastrow).Formula = "=VLOOKUP(LEFT(RC[-1],FIND(""-"",RC[-1],1)+4),'[Process Flows.xlsx]" & prodflow & "'!R1C1:R999C70,14,FALSE)" 

ich auf die Frage gegoogelt haben und alle Antworten auf ähnliche Fragen hinweisen, dass das, was ich tue, richtig ist. Gibt es noch etwas, das ich verpasse? Vielen Dank!

+0

Was ist eine Fehlernummer? Was passiert, wenn Sie '.value' zu' prodflow = Cells (2, 2) .value' hinzufügen. Welchen Wert finden Sie in ** Direktes Fenster **, wenn Sie 'Debug.Print prodflow' direkt nach' prodflow = cells (.... '? –

+0

zusätzlichen Vorschlag hinzufügen) versuchen,' .Formula' in '.FormulaR1C1' zu ändern –

Antwort

0

versuchen, die Formel String zu erstellen und es dann in den Bereich Formel zuzuordnen:

dim f = "= a + b"

RANGE. FORMULA = F

nehmen Sie das f-Ergebnis aus dem direkten Fenster und überprüfen Sie es in Excel ... Wenn es funktioniert, sollte es in Ihrem Code arbeiten.