Gå til innhold

[Løst] Vlookup i VB (Excel)


Anbefalte innlegg

Jeg sliter med å få rett syntax på en Vlookup-formel i Excel.

 

Jeg har en del verdier i kolonne E, f.eks. A0104110, A0104220 som jeg ønsker å slå opp mot ark A01, kolonne E og hente verdi fra kolonne Y på dette arket (A01).

 

Jeg har lagt en løkke som løper igjennom radene på det første arket:

Range("e44").Select
    Linjer = 0
    Do While ActiveCell.Value <> ""
    AC = Left(ActiveCell.Value, 3)
    AC2 = ActiveCell.Value
    
    If AC = "A01" Then ActiveCell.Offset(0, 20).Formula = "=Vlookup('" + AC2 + ", A01!$E$44:A01!$Y$110, 20, False)"
 

Men jeg får ikke rett syntax på Vlookup-formelen. Kan noen hjelpe? Output nå er: "=VLOOKUP(AC2; 'A01'!$E$44:'A01'!$Y$110; 20; FALSE)"

Endret av indahla
Lenke til kommentar
Videoannonse
Annonse

Jeg har løst syntaxen med Vlookup, bortsett fra en ting:

Min nye setning er:

If Left(ActiveCell.Value, 3) = "A01" Then ActiveCell.Offset(0, 20).Formula = "=Vlookup(" + AC + ", A01!$E$44:A01!$Y$110, 21, False)"

 

Denne gir: =VLOOKUP(A104110; 'A01'!$E$44:'A01'!$Y$110; 21; FALSE)

 

Det merkelige er at verdien i AC = "A0104110". Med andre ord blir den første nullen borte i Vlookup-formelen.

Jeg har forsøkt å sette inn ett og ett tegn av A0104110 i VB-scriptet men den første nullen blir alltid borte.

 

Noen som har en forklaring og løsning på dette?

Lenke til kommentar

Ja, du går etter Value, altså verdi. I tallverdenen er 01 akkurat det samme som 1.

Du må først fortelle at det er snakk om tekst, altså

 

Dim AC as Sring

 

øverst i prosedyren, og så bruke celleteksten istedetfor tallverdien:

 

AC = Left(ActiveCell.Text, 3)

 

HTH. Beste hilsen Harald

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...