Note: The other languages of the website are Google-translated. Back to English

Hogyan lehet másolni a keresési cella forrásformátumát, amikor a Vlookup programot használja az Excel programban?

Az előző cikkekben a háttérszín megőrzéséről beszéltünk, amikor a vlookup értékek az Excel-ben vannak. Ebben a cikkben bemutatjuk a kapott cellák összes celloformátumának másolásának módszerét, amikor a Vlookup programot az Excel programban hajtjuk végre. Kérjük, tegye a következőket.

Másolja a forrás formátumát, ha a Vlookup programot Excelben használja a felhasználó által definiált funkcióval


Másolja a forrás formátumát, ha a Vlookup programot Excelben használja a felhasználó által definiált funkcióval

Tegyük fel, hogy van egy táblázata az alábbi képernyőképen. Most ellenőriznie kell, hogy egy megadott érték (az E oszlopban) szerepel-e az A oszlopban, és visszaadja a megfelelő értéket formázással a C oszlopban. Ennek eléréséhez tegye a következőket.

1. A munkalap tartalmazza a vlookup értékét, kattintson a jobb gombbal a lap fülre, és válassza ki Kód megtekintése a helyi menüből. Lásd a képernyőképet:

2. A nyílásban Microsoft Visual Basic for Applications ablakba, kérjük, másolja a VBA kód alatt a Kód ablakba.

1. VBA-kód: Vlookup és return érték formázással

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. Ezután kattintson betétlap > Modulok, és másolja az alábbi VBA kódot a Modul ablakba.

2. VBA-kód: Vlookup és return érték formázással

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. kettyenés Eszközök > Referenciák. Ezután ellenőrizze a Microsoft Script futásidejű doboz a Referenciák - VBAProject párbeszédablak. Lásd a képernyőképet:

5. megnyomni a más + Q gombokkal lépjen ki a Microsoft Visual Basic for Applications ablak.

6. Jelöljön ki egy üres cellát a keresési érték mellett, majd írja be a képletet =LookupKeepFormat(E2,$A$1:$C$8,3) be a Formula Bar, majd nyomja meg a gombot belép kulcs.

Megjegyzések: A képletben E2 tartalmazza a keresni kívánt értéket, $ A $ 1: $ C $ 8 a táblázat tartománya és száma 3 azt jelenti, hogy a megfelelő érték, amelyet visszaad, a táblázat harmadik oszlopában található. Kérjük, változtassa meg őket szükség szerint.

7. Folyamatosan válassza ki az első eredménycellát, majd húzza lefelé a Kitöltő fogantyút, hogy az összes eredmény megjelenjen a formázásukkal együtt, ahogy az alábbi képernyőképen látható.


Kapcsolódó cikkek:


A legjobb irodai termelékenységi eszközök

A Kutools for Excel megoldja a legtöbb problémát, és 80% -kal növeli a termelékenységet

  • újrafelhasználás: Gyorsan helyezze be összetett képletek, diagramok és bármi, amit korábban használt; Cellák titkosítása jelszóval; Levelezőlista létrehozása és e-maileket küldeni ...
  • Szuper Formula Bár (könnyedén szerkeszthet több szöveget és képletet); Olvasás elrendezés (könnyen olvasható és szerkeszthető nagyszámú cella); Beillesztés a Szűrt tartományba...
  • Cellák / sorok / oszlopok egyesítése az adatok elvesztése nélkül; Osztott cellák tartalma; Kombinálja a duplikált sorokat / oszlopokat... megakadályozza az ismétlődő cellákat; Hasonlítsa össze a tartományokat...
  • Válassza a Másolat vagy az Egyedi lehetőséget Sorok; Válassza az Üres sorok lehetőséget (az összes cella üres); Super Find és Fuzzy Find sok munkafüzetben; Véletlenszerű kiválasztás ...
  • Pontos másolás Több cella a képletreferencia megváltoztatása nélkül; Automatikus referenciák létrehozása több lapra; Helyezze be a golyókat, Jelölőnégyzetek és még sok más ...
  • Kivonat szöveg, Szöveg hozzáadása, Eltávolítás pozíció szerint, Hely eltávolítása; Hozz létre és nyomtasson személyhívó részösszegeket; Konvertálás a cellatartalom és a megjegyzések között...
  • Szuper szűrő (mentse el és alkalmazza a szűrősémákat más lapokra); Haladó rendezés hónap / hét / nap, gyakoriság és egyebek szerint; Speciális szűrő félkövér, dőlt betűvel ...
  • Kombinálja a munkafüzeteket és a munkalapokat; Táblázatok egyesítése kulcsoszlopok alapján; Az adatok felosztása több lapra; Kötegelt konvertálás xls, xlsx és PDF...
  • Több mint 300 hatékony funkció. Támogatja az Office / Excel 2007-2021 és 365 verziókat. Minden nyelvet támogat. Könnyű üzembe helyezés vállalatában vagy szervezetében. Teljes funkciók 30 napos ingyenes próbaverzió. 60 napos pénzvisszafizetési garancia.
kte lap 201905

Az Office fül a füles felületet hozza az Office-ba, és sokkal könnyebbé teszi a munkáját

  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
officetab alja
A megjegyzések rendezése szerint
Hozzászólások (42)
Még nincs értékelés. Legyen Ön az első, aki értékel!
A weboldal moderátora ezt a megjegyzést minimalizálta
fordítási hibát, szintaktikai hibát ad

kérem, segítsen
A weboldal moderátora ezt a megjegyzést minimalizálta
Good Day,
A kód frissült a cikkben. Köszönjük észrevételét.
A weboldal moderátora ezt a megjegyzést minimalizálta
A fordítói hibát is kaptam.
Javításra kerül, ha megváltoztatja a következő változót a tényleges "". Nem ';' középen.
LookupKeepFormat = " "
xDic.Add Application.Caller.Address, " "
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia,
Elnézést a hibáért, a kód frissült a cikkben.
A " " hiba két idézőjel legyen " ". Köszönjük észrevételét.
A weboldal moderátora ezt a megjegyzést minimalizálta
Ugyanezt a hibát kaptam.

Meg kell változtatnia a " " értéket a tényleges "" értékre, ';' nélkül. az alábbiak szerint
LookupKeepFormat = " "
xDic.Add Application.Caller.Address, " "

LookupKeepFormat = ""
xDic.Add Application.Caller.Address ""
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia,
Elnézést a hibáért, a kód frissült a cikkben. Köszönöm a megosztást.
A weboldal moderátora ezt a megjegyzést minimalizálta
Ez szuper, köszönöm! Az egyetlen probléma az, hogy jól működik, ha ugyanabban a lapban keresek, de nem tudom működésre bírni, amikor egy külön lapon próbálok kikeresni a forrásadatokat. Továbbra is próbálkozni fog
A weboldal moderátora ezt a megjegyzést minimalizálta
Julia, javítsd ki ezeket a sorokat:
a Function LookupKeepFormatban:
xDic.Add Application.Caller.Address, xFindCell.Offset(0, xCol - 1).Cím & "|" & LookupRng.Parent.Name

in Sub Worksheet_Change:
Lapok(Split(xDic.Items(I), "|")(1)).Tartomány(Split(xDic.Items(I), "|")(0)).Másolás
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Hugo,


Nekem ugyanaz a problémám, mint Juliának. Más lapokon nem működik. Tudnál segíteni kódot írni a teljes függvényhez és almunkalaphoz? Nem tudom hova kell cserélni/beszúrni az xDic.Add Application.Caller.Address, xFindCell.Offset(0, xCol - 1).Address & "|" & LookupRng.Parent.Nam és Sheets(Split(xDic.Items(I), "|")(1)).Tartomány(Split(xDic.Items(I), "|")(0)).Másolás


köszönöm cserébe
A weboldal moderátora ezt a megjegyzést minimalizálta
Nagyon köszönöm a folytatást Hugo!
Sajnos Vi-hez hasonlóan én is túl kezdő vagyok ahhoz, hogy kitaláljam, hova kell beilleszteni a javasolt kódjavításokat...

Még egyszer köszönöm, további szép napot :)
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia


Megpróbáltam használni a kódot, de a mellékelt képen kapom a hibát. Minden segítséget nagyra értékelünk.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia,
Elnézést a hibáért, a kód frissült a cikkben. Köszönjük észrevételét.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia,

Nem kapok hibát, és elvégzi a keresést, de mivel a keresési értékem egy másik munkalapon van (valószínűbb forgatókönyv), nem kéri le a formázást. Van valami finomítás a kódon, amit erre tudok tenni? (Legyen nagyon konkrét, hogy hol kell a változtatásnak mennie, mivel kezdő kódoló vagyok) Köszönöm! Örülök, hogy hozzáadhatom ezt a funkciót az egyik táblázatomhoz!!
A weboldal moderátora ezt a megjegyzést minimalizálta
Üdvözlöm, sok szerencsét kívánok ehhez a kérdéshez. Hogyan érhetjük el, hogy a formázás a lapok között megtekinthető legyen?
A weboldal moderátora ezt a megjegyzést minimalizálta
Szintén keresi a csípet.
A weboldal moderátora ezt a megjegyzést minimalizálta
Továbbá, ha hozzáadom a képletet egy "If" utasítás részeként (lásd lent), akkor úgy formázza a cellát, ahogy akarja (vagy legalábbis annak tűnik. Egy cellában a szöveg árnyékolt és félkövér lett, felső szegéllyel a cella; egy másik cella, a szöveg középen)


=IF($F19 = "", "",LookupKeepFormat(F19,'Elem #s'!$A$1:$M$1226,2))
A weboldal moderátora ezt a megjegyzést minimalizálta
Kipróbáltam ezt és azt, amelyik csak a színes hátteret húzza, és ugyanazt a hibát kapom. Fordítási hiba: Félreérthető név észlelve. Kattintson az OK gombra, és kiemeli az xDic-et. Valami javaslat? Nem vagyok túl jól ebben az egészben, ezért kérlek segítsetek/magyarázzátok el :) előre is köszönöm
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Jeni,
Ne felejtse el engedélyezni a Microsoft Script Runtime beállítást a 4. lépésben leírtak szerint.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia. Létrehoztam egy üres táblázatot, és megkettőztem a példát az Excel 2013-ban, de folyamatosan fordítási hibaüzenetet kapok: Szintaktikai hiba, és a Dim I As Long ki van emelve. Hiányzik valami? Szeretném, ha ez működne. Köszönöm.
A weboldal moderátora ezt a megjegyzést minimalizálta
Hi Laura,
Ne felejtse el engedélyezni a Microsoft Script Runtime beállítást a 4. lépésben leírtak szerint.
A weboldal moderátora ezt a megjegyzést minimalizálta
Üdvözöljük! A fenti kódot az Excel 2010-ben használtam, és a mai napig nem volt probléma. Nemrég azonban frissítettem az Office 2016-ra, és most a kód összeomlik az Excelben minden alkalommal, amikor megpróbálok egynél több sort kitölteni. Sajnos nem ad nekem más hibát, mint hogy "A Microsoft Excel leállt". Érdeklődnék, hogy találkozott-e már ezzel a problémával, és van-e valami, amit tennem kell annak érdekében, hogy 2016-ban működjön. Köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Leigh,
A kód jól működik az Excel 2016-ban. Megpróbáljuk frissíteni a kódot a probléma megoldása érdekében. Köszönjük észrevételét.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia! Köszönjük a kódot. Nem kapok hibaüzenetet, de a képlet csak úgy működik, mint egy normál vlookup. tudna segíteni? Köszönöm a rám szánt időt.
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló

Pontosan ugyanez a problémám, rájöttél, hogyan lehet megoldani?

Köszönjük!
A weboldal moderátora ezt a megjegyzést minimalizálta
szia, a következő hibaüzenetet kaptam: "Fordítási hiba: Kétértelmű név észlelve: xDic
A weboldal moderátora ezt a megjegyzést minimalizálta
szia, a következő hibaüzenetet kaptam: "Fordítási hiba: Kétértelmű név észlelve: xDic
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia! Új vagyok a VBA használatában, és megpróbáltam használni ezt a kódot a táblázatomban, de a Rec2 lap szövegformázása nem jön át a Rec lapra, amikor a keresést használják. Bármilyen segítséget nagyra értékelnénk. Köszi Pat
A weboldal moderátora ezt a megjegyzést minimalizálta
Itt a fájl és a kép
A weboldal moderátora ezt a megjegyzést minimalizálta
Ugyanazt a kétértelmű név hibát kapom – sikerült valakinek megoldani?
A weboldal moderátora ezt a megjegyzést minimalizálta
Ugyanazt a kétértelmű név hibát kapom – sikerült valakinek megoldani?
Még senki sem írt megjegyzést
Több ingatlan
Kérjük, írja meg észrevételeit angol nyelven
Feladás vendégként
×
Értékeld ezt a bejegyzést:
0   Karakterek
Javasolt helyek

Kövess minket

Copyright © 2009 - www.extendoffice.com. | Minden jog fenntartva. Powered by ExtendOffice. | Oldaltérkép
A Microsoft és az Office logó a Microsoft Corporation védjegyei vagy bejegyzett védjegyei az Egyesült Államokban és / vagy más országokban.
Sectigo SSL védi