2017-06-23 2 views
0

Je souhaite configurer un modèle qui recherche des données basées sur des données collées dans une autre feuille de calcul.VLOOKUP génère une erreur d'exécution '1004'

Private Sub GoNoGo() 

Dim i As Integer 
Dim OffInt As Integer 
Dim Neg As Integer 
Neg = -30 

Dim Ret As String 
Dim I3 As Cell 
Dim FindValue As String 

Worksheets("BF59520").Activate 
Range("AE3").Activate 
i = 3 
OffInt = 0 

Do Until ActiveCell.Offset(0, Neg).Value = "" 

    If ActiveCell.Offset(0, -1).Interior.Color = RGB(255, 235, 160) Then 
     ActiveCell.Offset(1, 0).Activate 
     i = i + 1 
    Else 
     ActiveCell.Value = Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, -18), Worksheets("Go No Go").Range("B2:O180"), 4, False) 

     ActiveCell.Offset(1, 0).Activate 
     i = i + 1 
    End If 
     OffInt = OffInt + 1 
Loop 

End Sub 

Lorsque la boucle arrive à la ligne RECHERCHEV le code renvoie une erreur d'erreur d'exécution « 1004 »:

Impossible d'obtenir la propriété RECHERCHEV de la classe WorksheetFunction.

Répondre

0

Généralement, lorsque vous obtenez cette erreur sur une fonction de feuille de calcul, cela signifie que la fonction elle-même a renvoyé une erreur. Assurez-vous de lui transmettre les bonnes valeurs. Si vous ne pouvez pas garantir que vous obtiendrez une valeur correcte de la fonction, vous pouvez essayer d'utiliser On Error comme si

On Error Resume Next 
Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, -18), Worksheets("Go No Go").Range("B2:O180"), 4, False) 
On Error GoTo 0 

ou vous pouvez capturer l'erreur dans une déclaration évaluer comme si

ActiveCell.Value = Evaluate("=IFERROR(VLOOKUP(" & ActiveCell.Offset(0,-18) & ", 'Go No Go'!B2:O180, 4, FALSE),0)") 

La première entraînera un aucun changement dans l'ActiveCell lorsque le vlookup échoue, la seconde vous permet de définir une valeur par défaut en tant que second argument de la fonction 'IFERROR'.

Espérons que cela aide!