19. februar 2013 - 20:29Der er
14 kommentarer og 1 løsning
Excel VBA - loop gennem range og kør vlookup
Jeg har 3 kolonner med data. Med vba vil jeg loope gennem den første kolonnne. Hvis kolonne 1 er True på givets kritie, vil jeg udfylde kolonne 3 samme række med resultatet af en vlookup på kolonne 2. Jeg kan ikke få Vlookup til at fungere. Koden er: For i = maxRow To 1 Step -1 If (InStr(UCase(.Cells(i, 1)), "US") > 0) Then Worksheets("Output").Cells(i, 3).Value = Application._ WorksheetFunction.VLookup(Worksheets("Output").Cells(i, 2), USStates, 2, False) End If Next i End With
jeg er ikke sikker, men er USStates, ikke et navngivet område, så skal det vist nok i "".
Worksheets("Output").Activate For i = maxRow To 1 Step -1 If (InStr(UCase(.Cells(i, 1)), "US") > 0) Then Cells(i, 3).Value = Application. _ WorksheetFunction.VLookup(Cells(i, 2), "USStates", 2, False) End If Next i End With
Jeg får desværre fortsat 'run time error' på koden som nu ser således ud: For i = maxRow To 1 Step -1 If (InStr(UCase(.Cells(i, 1)), "US") > 0) Then Cells(i, 3).Value = Application.WorksheetFunction.VLookup(Cells(i, 2), Range("USStates"), 2, False) End If Next i End With Jeg har checket named range og den virker med almindelig formel i celle.
Skriv en opslagsværdi i en celle og klik så ind i cellen til højre for den. kør så makroen, så skal den finde opslagsværdien og skrive den i den celle du står i.
Public Sub test() ActiveCell = Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, -1), Range("USStates"), 2, False) End Sub
Yes - det virker også. Når jeg F8 igennem, fejler koden, når den skal laver lookup på en værdi, der ikke er i named range. Ved du om jeg kan komme omkring det?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.