Print side | Luk vindue

Vlookup fejler

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=3849
Udskrevet den: 23.Nov.2024 kl. 06:17


Emne: Vlookup fejler
Besked fra: HenrikAaen
Emne: Vlookup fejler
Posteringsdato: 27.Mar.2019 kl. 08:20
Jeg har store problemer med min en Vlookup formen i en IF sætning med lidt loops.


Jeg har en varenummer (tekst) som jeg gerne vil tjekke om findes i en liste i et andet worksheet. Hvis nummeret findes i det andet worksheet skal feltet markeret med en baggrundsfarve.

Dette tjek skal så laves for alle varenumre i den første liste.


Jeg han få det til at virker ved at bruge følgende sætning. Men i denne der tjekker jeg ikke i det andet worksheet, men blot om den første celle er lig sig selv:
----------------------------------------------------------------------------
 'Marker udgåede varer (Rød i Item Number)

  For i = 1 To NumProds
    If (Application.VLookup(Worksheets("data").Cells(5 + i, 4), , 1, False) = Worksheets("data").Cells(5 + i, 4)) Then
        Cells(5 + i, 4).Select
            With Selection.Interior
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorAccent5
                .Color = RGB(55, 0, 0)
                .PatternTintAndShade = 0
            End With
    End If
 Next 

 Application.StatusBar = "Step 4 of 10..."
 DoEvents
------------------------------------------------------------------------

Den formel som ikke virker er nedenstående. Den giver Runtime error 13 type dismatch.

Hvis jeg tilføjer worksheetfunktion "Application.worksheetfunktion.VLookup" får jeg istedet runtime error 438 Object doesn't support this property or method
------------------------------------------------------------------------
  'Marker udgåede varer (Rød i Item Number) (HAM)

  For i = 1 To NumProds
    If Application.VLookup(Cells(5 + i, 4), Sheets("Inventory assortment").Range("A2:A99999"), 1, False) = Cells(5 + i, 4) Then
        Cells(5 + i, 4).Select
            With Selection.Borders
                '.PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorAccent5
                .Color = RGB(55, 0, 0)
                '.PatternTintAndShade = 0
            End With
    End If
 Next
 

 Application.StatusBar = "Step 4 of 10..."
 DoEvents





Svar:
Besked fra: HenrikAaen
Posteringsdato: 27.Mar.2019 kl. 21:08
Fandt langt om længe selv en løsning. Tilføjede det markeret med rødt. Det for at ændre de gange hvor den ikke kunne finde varenummeret i opslagstabellen.

For i = 1 To NumProds
   If WorksheetFunction.IfError(Application.VLookup(Cells(5 + i, 4), Sheets("Inventory assortment").Range("A:A"), 1, False), "ABC") = Cells(5 + i, 4) Then
        Cells(5 + i, 4).Select
            With Selection.Interior
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorAccent5
                .Color = RGB(55, 0, 0)
                .PatternTintAndShade = 0
            End With
    End If
 Next



Print side | Luk vindue