Turinys
Šioje pamokoje sužinosite 3 skirtingus būdus, kaip dinamiškai paryškinti pasirinktos ląstelės eilutę ir stulpelį "Excel" programoje.
Ilgai peržiūrėdami didelį darbalapį, ilgainiui galite prarasti žymeklį ir nesuprasti, kur yra žymeklis ir kokius duomenis žiūrite. Kad bet kuriuo metu tiksliai žinotumėte, kur esate, priverskite "Excel" automatiškai paryškinti aktyvią eilutę ir stulpelį! Žinoma, paryškinimas turėtų būti dinamiškas ir keistis kaskart pasirinkus kitą ląstelę. Iš esmės to ir siekiame:
Automatinis pažymėtos ląstelės eilutės ir stulpelio paryškinimas naudojant VBA
Šiame pavyzdyje parodyta, kaip programiškai, naudojant VBA, galima paryškinti aktyvų stulpelį ir eilutę. Tam naudosime SelectionChange įvykis Darbalapis objektas.
Pirmiausia išvalykite visų lapo ląstelių fono spalvą nustatydami ColorIndex į 0. Tada paryškinsite visą aktyvios ląstelės eilutę ir stulpelį, nustatydami jų ColorIndex savybę į norimos spalvos indekso numerį.
Private Sub Worksheet_SelectionChange( ByVal Target As Range) If Target.Cells.Count> 1 Then Exit Sub Application.ScreenUpdating = False 'Išvalyti visų ląstelių spalvą Cells.Interior.ColorIndex = 0 With Target 'Paryškinti pasirinktos ląstelės eilutę ir stulpelį .EntireRow.Interior.ColorIndex = 38 .EntireColumn.Interior.ColorIndex = 24 End With Application.ScreenUpdating = True End SubKodo pritaikymas
Jei norite pritaikyti kodą savo poreikiams, šie nedideli patarimai gali praversti:
- Mūsų kodo pavyzdyje naudojamos dvi skirtingos spalvos, parodytos pirmiau pateiktame gif paveikslėlyje, - 38 spalvos indeksas eilutei ir 24 spalvos indeksas stulpeliui. pakeisti paryškinimo spalvą , tiesiog pakeiskite juos bet kokiais pasirinktais ColorIndex kodais.
- Norėdami gauti eilutę ir stulpelį, nuspalvintus taip pat , abiem atvejais naudokite tą patį spalvos indekso numerį.
- Jei norite paryškinti tik aktyvioji eilutė , pašalinkite šią eilutę arba išbraukite ją iš komentarų: .EntireColumn.Interior.ColorIndex = 24
- Jei norite paryškinti tik aktyvus stulpelis , pašalinkite šią eilutę arba išbraukite ją iš komentarų: .EntireRow.Interior.ColorIndex = 38
Kaip pridėti kodą prie darbalapio
Norėdami, kad kodas būtų tyliai vykdomas konkretaus darbalapio fone, turite jį įterpti į tam darbalapiui priklausantį kodo langą, o ne į įprastą modulį. Norėdami tai padaryti, atlikite šiuos veiksmus:
- Darbaknygėje paspauskite Alt + F11, kad patektumėte į VBA redaktorių.
- Kairėje pusėje esančiame "Project Explorer" (Projekto tyrėjas) matysite visų atidarytų sąsiuvinių ir jų darbalapių sąrašą. Jei jo nematote, naudokite spartųjį klavišą Ctrl + R, kad išvestumėte "Project Explorer" (Projekto tyrėjo) langą.
- Raskite tikslinę darbo knygą. "Microsoft Excel" objektai aplanke dukart spustelėkite lapą, kuriame norite taikyti paryškinimą. Šiame pavyzdyje tai 1 lapas .
- Dešinėje esančiame kodo lange įklijuokite pirmiau pateiktą kodą.
- Išsaugokite failą kaip Makrokomandų įgalintas darbalaukis (.xlsm).
Privalumai : viskas atliekama galinėje dalyje; naudotojui nereikia jokių koregavimų ir (arba) pritaikymų; veikia visose "Excel" versijose.
Trūkumai : yra du esminiai trūkumai, dėl kurių šis metodas tam tikromis aplinkybėmis negali būti taikomas:
- Kodas išvalo fono spalvas visų darbalapio langelių. Jei turite spalvotų langelių, nenaudokite šio sprendimo, nes jūsų pasirinktinis formatavimas bus prarastas.
- Šio kodo vykdymas blokai atšaukimo funkcija lape, ir negalėsite atšaukti klaidingo veiksmo paspausdami Ctrl + Z .
Aktyvios eilutės ir stulpelio paryškinimas be VBA
Geriausia, ką galite gauti norėdami paryškinti pasirinktą eilutę ir (arba) stulpelį be VBA, yra "Excel" sąlyginis formatavimas. Norėdami jį nustatyti, atlikite šiuos veiksmus:
- Pasirinkite duomenų rinkinį, kuriame reikia paryškinti.
- Dėl Pagrindinis skirtuke Stiliai grupę, spustelėkite Nauja taisyklė .
- Į Nauja formatavimo taisyklė dialogo lange pasirinkite Naudokite formulę, kad nustatytumėte, kurias ląsteles formatuoti .
- Į Formuoti reikšmes, kai ši formulė yra teisinga įveskite vieną iš šių formulių:
Išryškinti aktyvioji eilutė :
=CELL("eilutė")=ROW()
Išryškinti aktyvus stulpelis :
=CELL("col")=COLUMN()
Išryškinti aktyvi eilutė ir stulpelis :
=OR(CELL("row")=ROW(), CELL("col")= COLUMN())
Visose formulėse naudojama funkcija CELL, kuri grąžina pasirinktos ląstelės eilutės / stulpelio numerį.
- Spustelėkite Formatas mygtuką, pereikite į Užpildykite skirtuką ir pasirinkite norimą spalvą.
- Du kartus spustelėkite OK, kad uždarytumėte abu dialogo langus.
Jei manote, kad jums reikia išsamesnių nurodymų, skaitykite skyrių Kaip sukurti formule pagrįstą sąlyginio formatavimo taisyklę.
Šiame pavyzdyje pasirinkome OR formulę, kad ir stulpelį, ir eilutę nuspalvintume ta pačia spalva. Tai užima mažiau darbo ir tinka daugeliu atvejų.
Deja, šis sprendimas nėra toks geras kaip VBA, nes reikia lapo perskaičiavimas rankiniu būdu (paspaudus klavišą F9). Pagal numatytuosius nustatymus "Excel" perskaičiuoja darbalapį tik įvedus naujus duomenis arba redaguojant esamus, bet ne tada, kai pasikeičia pasirinkimas. Taigi, pasirenkate kitą langelį - nieko nevyksta. Paspaudžiate F9 - lapas atnaujinamas, formulė perskaičiuojama, o paryškinimas atnaujinamas.
Norėdami, kad darbalapis būtų automatiškai perskaičiuojamas, kai SelectionChange įvyksta įvykis, šį paprastą VBA kodą galite patalpinti tikslinio lapo kodo modulyje, kaip paaiškinta ankstesniame pavyzdyje:
Private Sub Worksheet_SelectionChange( ByVal Target As Range) Target.Calculate End SubKodas priverčia pasirinktą intervalą ir (arba) langelį perskaičiuoti, o tai savo ruožtu priverčia funkciją CELL atnaujinti ir sąlyginį formatavimą atspindėti pasikeitimus.
Privalumai : skirtingai nei ankstesniuoju metodu, šis metodas nedaro poveikio esamai formatavimo formato formai, kurią pritaikėte rankiniu būdu.
Trūkumai : gali pablogėti "Excel" veikimas.
- Kad sąlyginis formatavimas veiktų, turite priversti "Excel" perskaičiuoti formulę kiekvieną kartą pakeitus pasirinkimą (rankiniu būdu, naudojant F9 klavišą, arba automatiškai, naudojant VBA). Priverstinis perskaičiavimas gali sulėtinti "Excel" veikimą. Kadangi mūsų kodas perskaičiuoja pasirinkimą, o ne visą lapą, neigiamas poveikis greičiausiai bus pastebimas tik tikrai didelėse ir sudėtingose darbo knygose.
- Kadangi funkcija CELL yra "Excel 2007" ir naujesnėse versijose, šis metodas neveiks ankstesnėse versijose.
Pasirinktos eilutės ir stulpelio paryškinimas naudojant sąlyginį formatavimą ir VBA
Jei ankstesnis metodas labai sulėtins darbo knygą, galite į užduotį pažvelgti kitaip - užuot perskaičiavę darbalapį po kiekvieno naudotojo judesio, naudodami VBA gaukite aktyvios eilutės / stulpelio numerį ir, naudodami sąlyginio formatavimo formules, pateikite jį ROW() arba COLUMN() funkcijai.
Norėdami tai padaryti, atlikite šiuos veiksmus:
- Į darbaknygę įtraukite naują tuščią lapą ir pavadinkite jį Pagalbinis lapas . Vienintelė šio lapo paskirtis - išsaugoti du skaičius, žyminčius eilutę ir stulpelį, kuriuose yra pažymėta ląstelė, kad vėliau galėtumėte saugiai paslėpti lapą.
- Į darbalapio, kuriame norite įdiegti paryškinimą, kodo langą įterpkite toliau pateiktą VBA. Išsamias instrukcijas rasite pirmajame pavyzdyje. 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
Pirmiau pateiktame kode aktyvios eilutės ir stulpelio koordinatės įrašomos į lapą, pavadintą "Helper Sheet" (pagalbinis lapas). Jei 1 žingsnyje lapą pavadinote kitaip, atitinkamai pakeiskite lapo pavadinimą kode. Eilutės numeris įrašomas į A2, o stulpelio numeris - į B2.
- Tiksliniame darbalapyje pasirinkite visą duomenų rinkinį ir sukurkite sąlyginio formatavimo taisyklę su toliau pateiktomis formulėmis. Žingsnis po žingsnio nurodymai pateikti pirmiau pateiktame pavyzdyje.
Dabar išsamiai aptarsime tris pagrindinius naudojimo atvejus.
Kaip paryškinti aktyvią eilutę
Norėdami paryškinti eilutę, kurioje šiuo metu yra žymeklis, nustatykite sąlyginio formatavimo taisyklę su šia formule:
=ROW()="Pagalbinis lapas"!$A$2
Dėl to naudotojas aiškiai mato, kuri eilutė šiuo metu yra pasirinkta:
Kaip paryškinti aktyvų stulpelį
Norėdami paryškinti pasirinktą stulpelį, stulpelio numerį į funkciją COLUMN įveskite pagal šią formulę:
=COLUMN()="Pagalbinis lapas"!$B$2
Dabar paryškintas stulpelis leidžia patogiai ir be vargo skaityti vertikalius duomenis, sutelkiant dėmesį tik į juos.
Kaip paryškinti aktyvią eilutę ir stulpelį
Jei norite, kad pasirinkta eilutė ir stulpelis būtų automatiškai nuspalvinti ta pačia spalva, sujungkite funkcijas ROW() ir COLUMN() į vieną formulę:
=OR(ROW()="Pagalbinis lapas"!$A$2, COLUMN()="Pagalbinis lapas"!$B$2)
Atitinkami duomenys iš karto išryškinami, todėl galite išvengti klaidingo jų perskaitymo.
Privalumai : optimizuotas veikimas; veikia visose "Excel" versijose
Trūkumai : ilgiausia sąranka
Štai kaip "Excel" programoje paryškinti pasirinktos ląstelės stulpelį ir eilutę. Dėkoju, kad perskaitėte, ir laukiu jūsų mūsų tinklaraštyje kitą savaitę!
Atsisiųsti praktikos sąsiuvinį
Aktyvios eilutės ir stulpelio paryškinimas (.xlsm failas)