Hur slår man upp och returnerar bakgrundsfärg tillsammans med uppslagsvärdet i Excel?
Antar att du har en tabell som visas nedan. Nu vill du kontrollera om ett angivet värde finns i kolumn A och sedan returnera motsvarande värde tillsammans med bakgrundsfärg i kolumn C. Hur uppnår du det? Metoden i artikeln kan hjälpa dig att lösa problemet.
Vlookup och returnera bakgrundsfärg med uppslagsvärde med användardefinierad funktion
Vlookup och returnera bakgrundsfärg med uppslagsvärde med användardefinierad funktion
Gör så här för att leta upp ett värde och returnera motsvarande värde tillsammans med bakgrundsfärg i Excel.
1. I kalkylbladet innehåller det värde du vill söka igenom, högerklicka på arkfliken och välj Visa kod från snabbmenyn. Se skärmdump:
2. I öppningen Microsoft Visual Basic för applikationer kopiera nedan VBA-kod till kodfönstret.
VBA-kod 1: Vlookup och returnera bakgrundsfärg med uppslagsvärdet
Sub Worksheet_Change(ByVal Target As Range)
Dim I As Long
Dim xKeys As Long
Dim xDicStr As String
On Error Resume Next
Application.ScreenUpdating = False
xKeys = UBound(xDic.Keys)
If xKeys >= 0 Then
For I = 0 To UBound(xDic.Keys)
xDicStr = xDic.Items(I)
If xDicStr <> "" Then
Range(xDic.Keys(I)).Interior.Color = _
Range(xDic.Items(I)).Interior.Color
Else
Range(xDic.Keys(I)).Interior.Color = xlNone
End If
Next
Set xDic = Nothing
End If
Application.ScreenUpdating = True
End Sub
3. Klicka sedan Insert > Modulerna, och kopiera nedanstående VBA-kod 2 till modulfönstret.
VBA-kod 2: Vlookup och returnera bakgrundsfärg med uppslagsvärdet
Public xDic As New Dictionary
Function LookupKeepColor (ByRef FndValue, ByRef LookupRng As Range, ByRef xCol As Long)
Dim xFindCell As Range
On Error Resume Next
Set xFindCell = LookupRng.Find(FndValue, , xlValues, xlWhole)
If xFindCell Is Nothing Then
LookupKeepColor = ""
xDic.Add Application.Caller.Address, ""
Else
LookupKeepColor = xFindCell.Offset(0, xCol - 1).Value
xDic.Add Application.Caller.Address, xFindCell.Offset(0, xCol - 1).Address
End If
End Function
4. När du har infogat de två koderna klickar du på verktyg > Referensprojekt. Kontrollera sedan Microsoft Script Runtime ruta i Referenser - VBAProject dialog ruta. Se skärmdump:
5. tryck på andra + Q för att avsluta Microsoft Visual Basic för applikationer och gå tillbaka till kalkylbladet.
6. Välj en tom cell intill uppslagsvärdet och ange formeln =LookupKeepColor(E2,$A$1:$C$8,3) in i formelfältet och tryck sedan på Enter.
Anmärkningar: I formeln, E2 innehåller värdet du ska slå upp, $ A $ 1: $ C $ 8 är tabellområdet och antalet 3 betyder att motsvarande värde du kommer att returnera finns i den tredje kolumnen i tabellen. Vänligen ändra dem efter behov.
7. Fortsätt att markera den första resultatcellen och dra fyllningshandtaget nedåt för att få alla resultat tillsammans med deras bakgrundsfärg. Se skärmdump.
Relaterade artiklar:
- Hur kopierar man källformatering av uppslagscellen när man använder Vlookup i Excel?
- Hur vlookup och returnera datumformat istället för nummer i Excel?
- Hur använder jag vlookup och sum i Excel?
- Hur vlookup returvärde i intilliggande eller nästa cell i Excel?
- Hur vlookup värde och returnera true eller false / ja eller nej i Excel?
Bästa kontorsproduktivitetsverktyg
Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid. Klicka här för att få den funktion du behöver mest...
Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare
- Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
- Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
- Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!