Hur kopierar man källformatering av uppslagscellen när man använder Vlookup i Excel?
I de tidigare artiklarna har vi pratat om att behålla bakgrundsfärg när vlookup-värden i Excel. Här i den här artikeln ska vi introducera en metod för att kopiera all cellformatering av den resulterande cellen när du gör Vlookup i Excel. Gör så här.
Kopiera källformatering när du använder Vlookup i Excel med en användardefinierad funktion
Kopiera källformatering när du använder Vlookup i Excel med en användardefinierad funktion
Antar att du har en tabell som visas nedan. Nu måste du kontrollera om ett angivet värde (i kolumn E) finns i kolumn A och returnera motsvarande värde med formatering i kolumn C. Gör så här för att uppnå det.
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 returvärde med formatering
Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20211203
Dim I As Long
Dim xKeys As Long
Dim xDicStr As String
On Error Resume Next
Application.ScreenUpdating = False
Application.CutCopyMode = False
xKeys = UBound(xDic.Keys)
If xKeys >= 0 Then
For I = 0 To UBound(xDic.Keys)
xDicStr = xDic.Items(I)
If xDicStr <> "" Then
Set xRg = Application.Range(xDicStr)
xRg.Copy
Range(xDic.Keys(I)).PasteSpecial xlPasteFormats
Else
Range(xDic.Keys(I)).Interior.Color = xlNone
End If
Next
Set xDic = Nothing
End If
Application.ScreenUpdating = True
Application.CutCopyMode = True
End Sub
3. Klicka sedan Insert > Modulerna, och kopiera nedanstående VBA-kod 2 till modulfönstret.
VBA-kod 2: Vlookup och returvärde med formatering
Public xDic As New Dictionary
'Update by Extendoffice 20211203
Function LookupKeepFormat(ByRef FndValue, ByRef LookupRng As Range, ByRef xCol As Long)
Dim xFindCell As Range
On Error Resume Next
Application.ScreenUpdating = False
Set xFindCell = LookupRng.Find(FndValue, , xlValues, xlWhole)
If xFindCell Is Nothing Then
LookupKeepFormat = " "
xDic.Add Application.Caller.Address, " "
Else
LookupKeepFormat = xFindCell.Offset(0, xCol - 1).Value
xDic.Add Application.Caller.Address, xFindCell.Offset(0, xCol - 1).Address(External:=True)
End If
Application.ScreenUpdating = True
End Function
4. klick 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 fönster.
6. Välj en tom cell intill uppslagsvärdet och ange formeln =LookupKeepFormat(E2,$A$1:$C$8,3) i Formula Bar, och tryck sedan på ange nyckel.
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 välja den första resultatcellen och dra sedan fyllningshandtaget nedåt för att få alla resultat tillsammans med deras formatering enligt skärmbilden nedan.
Relaterade artiklar:
- Hur slår man upp och returnerar bakgrundsfärg tillsammans med uppslagsvärdet 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!