2016-12-06 1 views
0

Ich erhalte einen Fehler vonVerwenden Vlookup() Mit VBA

Objekt erforderlich

meine Syntax ausgeführt wird. Dies ist die Syntax, die ich habe, aber es ist nicht erfolgreich. Wie kann ich den Wert Vlookup() in meine aktuelle Arbeitsblattzelle T1 schreiben?

Public Sub Test() 
    Dim dblInfo 
    dblInfo = Application.WorksheetFunction.VLookup("A2", Sheet1.Range("A2:F171"), 4, False) 
    Range("T1").Select 
    ActiveCell.FormulaR1C1 = dblInfo 
End Sub 
+0

genau berechnet werden soll Welche Zeile erhöht den Fehler "object required"? –

+0

Beachten Sie, dass ein weiterer Laufzeitfehler (1004) auftritt, wenn der Suchvorgang fehlschlägt und Sie ihn nicht verarbeiten. 'dblInfo' sollte mit einem expliziten Typ deklariert werden (bitte kein ungarisches Präfix); 'Dim whateverThisActuallyIs Double '. Wenn Sie meinen, dass 'dblInfo' bei fehlgeschlagener Suche einen Fehlerwert enthält, deklarieren Sie 'As Variant' und verwenden Sie stattdessen die Funktion' Application.VLookup', die spät gebunden ist. Weitere Informationen finden Sie [diese Antwort] (http://stackoverflow.com/a/40877404/1188513). –

Antwort

1

Wenn Sie nur die Formel SVERWEIS in T1

Range("T1") = "=VLookup(A2, Sheetname!A2:F171, 4, False)" 

Andernfalls eingeben möchten, wenn Sie die VLookup und geben Sie dann nur das Ergebnis ...

Range("T1") = Application.WorksheetFunction.VLookup([A2], Sheetname.Range("A2:F171"), 4, False) 
+0

Die beste Lösung ist ein #NAME? in der Zelle T1 und der Boden gibt mir das gleiche Objekt erforderlich Fehler –

+0

Ja, bearbeitet ... Ich versehentlich zu senden einreichen zu schnell ... – Rdster

+0

der A2: F171 ist auf einem anderen Blatt als Range ("T1") - wie kann ich den Namen des Blattes qualifizieren? –