Excel - Ändra ett värde med en uppslagstabell

Problem

Jag letar efter hjälp med att skriva ett makro som kommer att utföra en VLOOKUP-formel som kommer att jämföra värdet i G2 på Sheet1, till värdet i A1 på Sheet2. Om värdena matchar vill jag ersätta ett värde i G2 på Sheet1 med värdet från B1 på Sheet2. Anledningen till att jag behöver ersätta värdet i samma cell beror på att inte varje cell kommer att ha en match i uppslagstabellen. Om så är fallet måste det ursprungliga värdet stanna.

Exempel...

Innan

 G2 - Sheet1 A1 B1 - Sheet2 12345 12345 ABCDE 23456 34567 GHIJK 34567 

Efter

 G2 - Sheet1 A1 B1 - Sheet2 ABCDE 12345 ABCDE 23456 34567 GHIJK GHIJK 

Det här är vad jag hittills kommit fram till, men allt jag får är värdet "0" i alla celler.

 Range ("G2"). Välj ActiveCell.FormulaR1C1 = "= VLOOKUP (TRIM (RC [0]), WCSSCustItemNumLookupTable! R1C1: R2000C2, 2, 0)" Selection.AutoFill Destination: = Område ("G2: G" + sPostDelLastRow ) Räckvidd ("F1"). Välj 

Lösning

Du kan försöka med något sådant

 Dim temp Som variant temp = "dummy value dude" På fel Fortsätt Nästa temp = WorksheetFunction.VLookup (Range ("G2"), Sheets ("Sheet2"). Räckvidd ("A: B"), 2, False) GoTo 0 Om temp "dummy value dude" Då Range ("G2") = temp Avsluta Om 

Med detta sagt tror jag vad du behöver göra är att ha en annan kolumn för tempbasis. Låt säga kolumn H på blad 1

Gör en sökning där

som

Range("G2").Select

"titta upp i tidsintervallet H

Med Range ("H2: H" & sPostDelLastRow)

"faktiskt blick upp. Om uppslag misslyckas, använd motsvarande värde från G-kolumnen, annars använd värdet av vlookup

.FormulaR1C1 = "= ISERROR (VLOOKUP (TRIM (RC [-1]), WCSSCustItemNumLookupTable! R1C1: R2000C2, 2, 0)), RC [-1], VLOOKUP (TRIM (RC [-1]), WCSSCustItemNumLookupTable! R1C1 : R2000C2, 2, 0)"

. Kopiera "kopiering

.PasteSpecial xlPasteValues ​​'klistrar tillbaka som värden för att eliminera formeln

Kopiera igen för att flytta till aktuellt G-sortiment

Sluta med

'kopiera till G-sortimentet

Område ("G2: G" & sPostDelLastRow) .Special

"tydligt teampområde

Område ("H2: H" & sPostDelLastRow) .Klar

Notera

Tack till rizvisa1 för detta tips på forumet.

Tidigare Artikel Nästa Artikel

Bästa Tipsen