Sisukord
Selles õpetuses saate teada 3 erinevat viisi, kuidas Excelis valitud lahtri rida ja veergu dünaamiliselt esile tõsta.
Kui vaatate pikka aega suurt töölehte, võite lõpuks kaotada ülevaate, kus teie kursor on ja milliseid andmeid te vaatate. Et teaksite igal hetkel täpselt, kus te olete, laske Excelil automaatselt esile tõsta aktiivne rida ja veerg teie jaoks! Loomulikult peaks esiletõstmine olema dünaamiline ja muutuma iga kord, kui valite teise lahtri. Sisuliselt on see see see, mida me tahame saavutada:
Valitud lahtri rea ja veeru automaatne esiletõstmine VBAga
See näide näitab, kuidas saab VBA abil programmeeritult esile tõsta aktiivset veergu ja rida. Selleks kasutame me funktsiooni SelectionChange sündmus Tööleht objekt.
Kõigepealt kustutate lehe kõigi lahtrite taustavärvi, määrates väärtuse ColorIndex omaduse väärtuseks 0. Ja seejärel tõstate esile kogu aktiivse lahtri rea ja veeru, seades nende omaduste ColorIndex omadus soovitud värvi indeksinumbrile.
Private Sub Worksheet_SelectionChange( ByVal Target As Range) If Target.Cells.Count> 1 Then Exit Sub Application.ScreenUpdating = False 'Tühjenda kõigi lahtrite värv Cells.Interior.ColorIndex = 0 With Target 'Highlight row and column of the selected cell .EntireRow.Interior.ColorIndex = 38 .EntireColumn.Interior.ColorIndex = 24 End With Application.ScreenUpdating = True End SubKoodi kohandamine
Kui soovite koodi oma vajadustele kohandada, võivad need väikesed näpunäited olla kasulikud:
- Meie näidiskood kasutab kahte erinevat värvi, mida on näidatud ülaltoodud gif-is - värvindeks 38 rea jaoks ja 24 veeru jaoks. Et muuta esiletõstmise värvi , asendage need lihtsalt teie valitud ColorIndexi koodidega.
- Selleks, et saada rida ja veerg värvitud samamoodi , kasutage mõlema puhul sama värviindeksi numbrit.
- Et ainult rõhutada aktiivne rida , eemaldage või kommenteerige see rida välja: .EntireColumn.Interior.ColorIndex = 24
- Et ainult rõhutada aktiivne veerg , eemaldage või kommenteerige see rida välja: .EntireRow.Interior.ColorIndex = 38
Kuidas lisada kood oma töölehele
Selleks, et koodi saaks vaikselt täita konkreetse töölehe taustal, tuleb see sisestada sellele töölehele kuuluvasse koodiaknasse, mitte tavalisse moodulisse. Selleks tehke järgmised toimingud:
- Vajutage oma töövihikus Alt + F11, et pääseda VBA redaktorisse.
- Vasakul asuvas Project Explorer'is näete kõigi avatud töövihikute ja nende töölehtede nimekirja. Kui te seda ei näe, kasutage Ctrl + R otseteed, et tuua Project Explorer aken nähtavale.
- Leidke sihttöövihik. Selle Microsoft Exceli objektid kausta, tehke topeltklõps lehel, kus soovite kasutada esiletõstmist. Selles näites on see leht Leht 1 .
- Sisestage ülaltoodud kood paremal asuvasse koodiaknasse.
- Salvesta oma fail kui Makrofunktsiooniga töövihik (.xlsm).
Eelised : kõik on tehtud backendis; kasutaja poolel ei ole vaja teha mingeid kohandusi/kohandusi; töötab kõigis Exceli versioonides.
Puudused : on kaks olulist puudust, mis muudavad selle tehnika teatud tingimustel kohaldamatuks:
- Kood kustutab taustavärvid Kui teil on värvilised lahtrid, ärge kasutage seda lahendust, sest teie kohandatud vormindus läheb kaduma.
- Selle koodi täitmine plokid tagasivõtmise funktsioon lehel ja te ei saa vigast tegevust tagasi võtta, kui vajutate Ctrl + Z .
Aktiivse rea ja veeru esiletõstmine ilma VBA-ta
Parim võimalus valitud rea ja/või veeru esiletõstmiseks ilma VBA-ta on Exceli tingimuslik vormindamine. Selle seadistamiseks tehke järgmised sammud:
- Valige oma andmekogum, milles tuleks teha esiletõstmist.
- On Kodu vahekaardil Stiilid rühma, klõpsake Uus reegel .
- In the Uus vormindamise reegel dialoogiaknas valige Kasutage valemit, et määrata, millised lahtrid tuleb vormindada .
- In the Vormindage väärtused, mille puhul see valem on tõene sisestage üks järgmistest valemitest:
Rõhutada aktiivne rida :
=CELL("row")=ROW()
Rõhutada aktiivne veerg :
=CELL("col")=COLUMN()
Rõhutada aktiivne rida ja veerg :
=OR(CELL("row")=ROW(), CELL("col")= COLUMN())
Kõik valemid kasutavad funktsiooni CELL, et tagastada valitud lahtri rea/veeru number.
- Klõpsake nuppu Formaat nuppu, lülitage Täitke ja valige soovitud värv.
- Mõlema dialoogiakna sulgemiseks klõpsake kaks korda OK.
Kui tunnete, et vajate üksikasjalikumaid juhiseid, vaadake jaotist Kuidas luua valemipõhist tingimusliku vormindamise reeglit.
Selles näites valisime OR-valemi, et varjutada nii veerg kui ka rida ühesuguse värviga. See võtab vähem tööd ja sobib enamikel juhtudel.
Kahjuks ei ole see lahendus nii kena kui VBA, sest see nõuab lehe käsitsi ümberarvutamine (vajutades klahvi F9). Vaikimisi arvutab Excel töölehe ümber ainult pärast uute andmete sisestamist või olemasoleva redigeerimist, kuid mitte siis, kui valik muutub. Niisiis, valite teise lahtri - midagi ei juhtu. Vajutage F9 - leht värskendatakse, valem arvutatakse ümber ja esiletõstmine uuendatakse.
Et tööleht arvutatakse automaatselt uuesti, kui SelectionChange sündmuse toimumise korral saate selle lihtsa VBA-koodi paigutada oma sihtlehe koodimoodulisse, nagu eelmises näites selgitatud:
Private Sub Worksheet_SelectionChange( ByVal Target As Range) Target.Calculate End SubKood sunnib valitud vahemikku/ruutu ümber arvutama, mis omakorda sunnib funktsiooni CELL uuendama ja tingimuslikku vormingut muutust kajastama.
Eelised : erinevalt eelmisest meetodist ei mõjuta see olemasolevat vormingut, mida olete käsitsi rakendanud.
Puudused : võib halvendada Exceli jõudlust.
- Selleks, et tingimuslik vorming töötaks, peate sundima Excelit arvutama valemi iga valiku muutmise korral uuesti (kas käsitsi klahviga F9 või automaatselt VBA abil). Sundarvutused võivad Exceli tööd aeglustada. Kuna meie kood arvutab ümber pigem valiku kui terve lehe, on negatiivne mõju tõenäoliselt märgatav ainult väga suurte ja keeruliste töövihikute puhul.
- Kuna funktsioon CELL on saadaval Excel 2007 ja uuemates versioonides, ei tööta see meetod varasemates versioonides.
Valitud rea ja veeru esiletõstmine tingimusliku vormindamise ja VBA abil
Kui eelmine meetod aeglustab teie töövihikut märkimisväärselt, võite läheneda ülesandele teisiti - selle asemel, et arvutate töölehe iga kasutaja liigutuse korral uuesti, saate VBA abil aktiivse rea/veeru numbri ja seejärel serveerite selle numbri funktsioonile ROW() või COLUMN(), kasutades tingimuslikke vorminguid.
Selleks on järgmised sammud, mida peate järgima:
- Lisage oma töövihikusse uus tühi leht ja andke sellele nimi Abistaja leht Selle lehe ainus eesmärk on salvestada kaks numbrit, mis tähistavad valitud lahtrit sisaldavat rida ja veergu, et saaksite lehe hiljem turvaliselt ära peita.
- Sisestage alljärgnev VBA selle töölehe koodiaknasse, kus soovite rakendada esiletõstmist. Üksikasjalikud juhised leiate meie esimesest näitest. Private Sub Worksheet_SelectionChange( ByVal Target As Range) Application.ScreenUpdating = False Worksheets( "Helper Sheet" ).Cells(2, 1) = Target.Row Worksheets( "Helper Sheet" ).Cells(2, 2) = Target.Column Application.ScreenUpdating= True End Sub
Ülaltoodud kood paigutab aktiivse rea ja veeru koordinaadid lehele nimega "Helper Sheet". Kui nimetasite oma lehe sammus 1 teisiti, muutke koodis töölehe nime vastavalt. Rea number kirjutatakse A2 ja veeru number B2.
- Valige oma sihttöölehel kogu andmekogum ja looge allpool esitatud valemitega tingimusliku vormindamise reegel. Samm-sammult on toodud eespool toodud näide.
Ja nüüd käsitleme üksikasjalikult kolme peamist kasutusjuhtumit.
Aktiivse rea esiletõstmine
Selleks, et rõhutada rida, kus teie kursor hetkel asub, seadistage selle valemiga tingimusliku vormindamise reegel:
=ROW()='Helper Sheet'!$A$2
Selle tulemusena näeb kasutaja selgelt, milline rida on hetkel valitud:
Aktiivse veeru esiletõstmine
Valitud veeru esiletõstmiseks sisestage veeru number funktsiooni COLUMN, kasutades seda valemit:
=COLUMN()='abileht'!$B$2
Nüüd võimaldab esiletõstetud veerg teil mugavalt ja vaevata lugeda vertikaalseid andmeid, keskendudes täielikult sellele.
Aktiivse rea ja veeru esiletõstmine
Selleks, et nii valitud rida kui ka veerg automaatselt sama värviga toonida, ühendage funktsioonid ROW() ja COLUMN() üheks valemiks:
=OR(ROW()='Abileht'!$A$2, COLUMN()='Abileht'!$B$2)
Asjakohased andmed tuuakse kohe esile, nii et saate vältida nende valesti tõlgendamist.
Eelised : optimeeritud jõudlus; töötab kõigis Exceli versioonides
Puudused : pikim seadistus
Nii saab Excelis valitud lahtri veeru ja rea esile tõsta. Tänan teid lugemise eest ja ootan teid järgmisel nädalal meie blogis!
Praktiline töövihik allalaadimiseks
Aktiivse rea ja veeru esiletõstmine (.xlsm fail)