2017-05-29 1 views
0

Brauchen Sie Hilfe zu meinem MakroDim ein Blatt aus variabler Arbeitsmappe

Ich versuche, vlookup von 2 Unterschied Arbeitsmappe. 1 meiner Arbeitsmappe ändert den Namen jeden Tag nach Datum. Ich habe diesen Teil schon bekommen. Jetzt steckte ich, wie man die variable Arbeitsmappe verdunkelt, um in vlookup Formel zu verwenden. Hier mein Code Ich möchte OCBReport dimmen.

Sub Part_ETA_PLANNER() 
' 
'Part ETA PLANNER Macro 
' 

    ' 
    'Find OCB PLanner Today 
    Dim OCBDaily As Workbook 
    Dim t As Workbook 

    For Each t In Workbooks 
     If Left(t.Name, 11) = "OCB_Report_" Then 
      Set OCBDaily = Workbooks(t.Name) 
     End If 
    Next t 

    'Variable Dim 
    Dim PartNumber, myRange As Long 
    Dim OCBReport As Sheets 

    Set OCBReport = "[ & OCBDaily & ]OCB" ' I got error on this part' 
    PartNumber = Range("L2").Offset(0, -10).Address(0, 0) 
    myRange = "'" & OCBReport & "'!C:W" 

    'Vlookup Part ETA planner 
    Dim LastRow As Long 
    LastRow = Sheets("Unfulfilled Daily Report").Range("E" & Rows.Count).End(xlUp).Row 
    Sheets("Unfulfilled Daily Report").Range("L2").Formula = "=VLOOKUP(" & PartNumber & "," & myRange & ", 21, FALSE)" 
    Sheets("Unfulfilled Daily Report").Range("L2").AutoFill Destination:=Range("L2:L" & LastRow) 
    Sheets("Unfulfilled Daily Report").Range("L2:L" & LastRow).Copy 
    Sheets("Unfulfilled Daily Report").Range("L2:L" & LastRow).PasteSpecial xlPasteValues 
    Range("B2").Select 
End Sub 
+0

Sie Dim OCBReport als Sheets oder Arbeitsblatt kann nicht führen, dass Sie eine erneute umhüllen kann myRange = "using '"& OCBReport &"'! C: W "um eine Zeichenkette zu konstruieren, so dass OCBReport grundsätzlich nur als String abgeblendet werden kann. Auch Fehler, die Sie in Set OCBReport = "[& OCBDaily &] OCB" erhalten, ist, weil Sie nicht korrekt doppelte Zitate verwenden sollten: OCBReport = "[" & OCBDaily & "] OCB" –

+0

Vielen Dank. Lerne etwas heute. Also brauchen alle Variablen, die wir zusammenlaufen, dasselbe Konstrukt, oder? –

Antwort

1

Was Sie brauchen, ist eine String Variable. Wenn Sie eine Variable in Anführungszeichen setzen, verhält sie sich auch wie eine Zeichenfolge. Auch OCBDaily.Name geben Sie den Namen der Arbeitsmappe, die Sie in "[]"

ändern

Dim OCBReport As Sheets 
Set OCBReport = "[ & OCBDaily & ]OCB" ' I got error on this part' 

zu

Dim OCBReport As String 
OCBReport = "[" & OCBDaily.Name & "]OCB" 
+0

Danke. Ich dim alle Variablen auf String und es funktionierte. Danke vielmals –

0

Wenn ich Ihren Teil des Codes richtig zu verstehen, müssen Sie es ändern:

Set OCBReport = OCBDaily.worksheets("OCB") 

Ihr Versuch, versucht das Blatt Variable in einen String zu setzen, das geben sollte eine Art Fehler geben. "OCB" sollte der Name des gewünschten Arbeitsblattes sein.

Grüße, Krossi

Verwandte Themen