Satura rādītājs
Šajā pamācībā uzzināsiet 3 dažādus veidus, kā programmā Excel dinamiski izcelt atlasītās šūnas rindu un kolonnu.
Ilgstoši pārlūkojot lielu darblapu, galu galā varat pazaudēt informāciju par to, kur atrodas kursors un kurus datus skatāt. Lai jebkurā brīdī precīzi zinātu, kur tieši atrodaties, panāciet, ka Excel automātiski izceļ aktīvo rindu un kolonnu! Protams, izcelšanai jābūt dinamiskai un jāmainās katru reizi, kad izvēlaties citu šūnu. Būtībā tieši to mēs arī vēlamies panākt:
Izvēlētās šūnas rindas un kolonnas automātiska izgaismošana ar VBA
Šajā piemērā parādīts, kā ar VBA programmatiski izcelt aktīvu kolonnu un rindu. Šim nolūkam mēs izmantosim IzvēleChange notikums Darba lapa objekts.
Vispirms notīriet visu lapas šūnu fona krāsu, iestatot ColorIndex uz 0. Un tad jūs izceļat visu aktīvās šūnas rindu un kolonnu, iestatot to ColorIndex īpašību uz vēlamās krāsas indeksa numuru.
Private Sub Worksheet_SelectionChange( ByVal Target As Range) If Target.Cells.Count> 1 Then Exit Sub Application.ScreenUpdating = False 'Notīriet visu šūnu krāsu Cells.Interior.ColorIndex = 0 With Target 'Izceliet atlasītās šūnas rindu un kolonnu .EntireRow.Interior.ColorIndex = 38 .EntireColumn.Interior.ColorIndex = 24 End With Application.ScreenUpdating = True End SubKoda pielāgošana
Ja vēlaties pielāgot kodu savām vajadzībām, šie nelielie padomi var noderēt:
- Mūsu parauga kodā tiek izmantotas divas dažādas krāsas, kas parādītas iepriekš minētajā gifā - krāsu indekss 38 rindai un 24 kolonnai. Lai mainīt izcelšanas krāsu , vienkārši nomainiet tos ar jebkuriem ColorIndex kodiem pēc savas izvēles.
- Lai iegūtu rindas un kolonnas, kas iekrāsotas logā tāpat , abos gadījumos izmantojiet vienu un to pašu krāsas indeksa numuru.
- Lai izceltu tikai aktīvā rinda , izņemiet vai komentējiet šo rindu: .EntireColumn.Interior.ColorIndex = 24
- Lai izceltu tikai aktīvā sleja , izņemiet vai komentējiet šo rindu: .EntireRow.Interior.ColorIndex = 38
Kā pievienot kodu darblapai
Lai kods tiktu izpildīts klusā veidā konkrētas darblapas fonā, tas ir jāievada šīs darblapas koda logā, nevis parastajā modulī. Lai to izdarītu, izpildiet šādas darbības:
- Darba burtnīcā nospiediet Alt + F11, lai atvērtu VBA redaktoru.
- Projekta pārlūkā (Project Explorer) kreisajā pusē redzēsiet visu atvērto darbgrāmatu un to darblapu sarakstu. Ja to neredzat, izmantojiet saīsnes kombināciju Ctrl + R, lai atvērtu projekta pārlūka logu.
- Atrodiet mērķa darbgrāmatu. Microsoft Excel objekti mapi, divreiz noklikšķiniet uz lapas, kurā vēlaties piemērot izcelšanu. Šajā piemērā tā ir mape 1 lapa .
- Labajā pusē esošajā logā Kods ielīmējiet iepriekš minēto kodu.
- Saglabājiet savu failu kā Makro darbgrāmata (.xlsm).
Priekšrocības : viss tiek veikts backend; lietotāja pusē nav nepieciešami pielāgojumi/pielāgošana; darbojas visās Excel versijās.
Trūkumi : ir divi būtiski trūkumi, kuru dēļ šī metode noteiktos apstākļos nav piemērojama:
- Kods notīra fona krāsas Ja darblapā ir iekrāsotas šūnas, neizmantojiet šo risinājumu, jo tiks zaudēts pielāgotais formatējums.
- Šī koda izpilde bloki atcelšanas funkcija lapā, un kļūdainu darbību nevarēsiet atcelt, nospiežot Ctrl + Z .
Aktīvās rindas un kolonnas izcelšana bez VBA
Labākais, ko varat iegūt, lai izceltu atlasīto rindu un/vai kolonnu bez VBA, ir Excel nosacītais formatējums. Lai to iestatītu, izpildiet šādas darbības:
- Izvēlieties datu kopu, kurā jāveic izcelšana.
- Par Sākums cilnē Stili grupu, noklikšķiniet uz Jauns noteikums .
- In the Jauns formatēšanas noteikums dialoglodziņā izvēlieties Izmantojiet formulu, lai noteiktu, kuras šūnas formatēt .
- In the Formatēt vērtības, ja šī formula ir patiesa ievadiet vienu no šīm formulām:
Izcelt aktīvā rinda :
=CELL("rinda")=ROW()
Izcelt aktīvā sleja :
=CELL("col")=COLUMN()
Izcelt aktīvā rinda un sleja :
=OR(CELL("row")=ROW(), CELL("col")= COLUMN())
Visās formulās tiek izmantota funkcija CELL, lai atgrieztu atlasītās šūnas rindas/slejas numuru.
- Noklikšķiniet uz Formāts pogu, pārslēgties uz Aizpildiet cilni un izvēlieties vēlamo krāsu.
- Divreiz noklikšķiniet uz Labi, lai aizvērtu abus dialoglodziņus.
Ja jums ir nepieciešami detalizētāki norādījumi, skatiet sadaļu Kā izveidot formulas nosacījuma formatēšanas noteikumu.
Šajā piemērā mēs izvēlējāmies OR formulu, lai iekrāsotu gan kolonnu, gan rindu vienā krāsā. Tas prasa mazāk darba un ir piemērots vairumā gadījumu.
Diemžēl šis risinājums nav tik patīkams kā VBA risinājums, jo tas prasa manuāla lapas pārrēķināšana (nospiežot taustiņu F9). Pēc noklusējuma Excel pārrēķina darblapu tikai pēc jaunu datu ievadīšanas vai esošo datu rediģēšanas, bet ne tad, kad mainās atlase. Tātad atlasāt citu šūnu - nekas nenotiek. Nospiežot taustiņu F9 - lapa tiek atsvaidzināta, formula tiek pārrēķināta un tiek atjaunināta izcelšana.
Lai darblapu pārrēķinātu automātiski, kad vien IzvēleChange notikumu, varat ievietot šo vienkāršo VBA kodu mērķa lapas koda modulī, kā paskaidrots iepriekšējā piemērā:
Private Sub Worksheet_SelectionChange( ByVal Target As Range) Target.Calculate End SubKods liek atlasītajam diapazonam/šūnai veikt pārrēķinu, kas, savukārt, liek atjaunināt funkciju CELL un nosacītajam formatējumam atspoguļot izmaiņas.
Priekšrocības : atšķirībā no iepriekšējās metodes šī metode neietekmē manuāli piemēroto formatējumu.
Trūkumi : var pasliktināt Excel veiktspēju.
- Lai nosacītais formatējums darbotos, ir nepieciešams piespiest Excel pārrēķināt formulu, mainot katru atlasi (manuāli ar taustiņu F9 vai automātiski ar VBA). Piespiedu pārrēķini var palēnināt Excel darbību. Tā kā mūsu kods pārrēķina atlasi, nevis visu lapu, negatīvā ietekme, visticamāk, būs jūtama tikai patiešām lielās un sarežģītās darbgrāmatā.
- Tā kā funkcija CELL ir pieejama programmā Excel 2007 un jaunākās versijās, šī metode nedarbosies agrākajās versijās.
Izcelt atlasīto rindu un kolonnu, izmantojot nosacīto formatējumu un VBA
Ja iepriekšējā metode ievērojami palēnina darbgrāmatas darbību, varat pieiet uzdevumam citādi - tā vietā, lai pārrēķinātu darblapu katrā lietotāja kustībā, ar VBA palīdzību iegūstiet aktīvās rindas/slejas numuru un pēc tam, izmantojot nosacītās formatēšanas formulas, pasniedziet šo numuru ROW() vai COLUMN() funkcijai.
Lai to paveiktu, šeit ir aprakstīti turpmāk minētie soļi:
- Pievienojiet darbgrāmatā jaunu tukšu lapu un nosauciet to ar nosaukumu Palīgs lapa . Vienīgais šīs lapas mērķis ir saglabāt divus skaitļus, kas apzīmē rindu un kolonnu, kurā atrodas atlasītā šūna, lai vēlāk varētu droši paslēpt lapu.
- Ievietojiet zemāk redzamo VBA kodu tās darblapas logā, kurā vēlaties ieviest izcelšanu. Sīkāku instrukciju meklējiet mūsu pirmajā piemērā. 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
Iepriekš minētais kods aktīvās rindas un kolonnas koordinātes ievieto lapā ar nosaukumu "Helper Sheet" (palīglapa). Ja 1. solī esat nosaucis lapu citādi, attiecīgi mainiet darblapas nosaukumu kodā. Rindas numurs tiek ierakstīts A2 un kolonnas numurs - B2.
- Mērķa darblapā atlasiet visu datu kopu un izveidojiet nosacījuma formatēšanas noteikumu, izmantojot turpmāk norādītās formulas. Soli pa solim norādījumi ir sniegti iepriekš minētajā piemērā.
Tagad detalizēti aplūkosim trīs galvenos izmantošanas gadījumus.
Kā izcelt aktīvo rindu
Lai izceltu rindu, kurā pašlaik atrodas kursors, izveidojiet nosacījuma formatēšanas noteikumu, izmantojot šo formulu:
=ROW()='Palīglapa'!$A$2
Rezultātā lietotājs var skaidri redzēt, kura rinda pašlaik ir atlasīta:
Kā izcelt aktīvo kolonnu
Lai izceltu atlasīto kolonnu, ievadiet kolonnas numuru funkcijai COLUMN, izmantojot šo formulu:
=COLUMN()="Palīglapa"!$B$2
Tagad izceltā sleja ļauj ērti un bez piepūles lasīt vertikālos datus, koncentrējoties tikai uz tiem.
Kā izcelt aktīvo rindu un kolonnu
Lai izvēlētā rinda un sleja tiktu automātiski iekrāsotas vienā krāsā, apvienojiet ROW() un COLUMN() funkcijas vienā formulā:
=OR(ROW()="Palīglapa"!$A$2, COLUMN()="Palīglapa"!$B$2)
Attiecīgie dati tiek uzreiz izcelti, lai jūs varētu izvairīties no nepareizas to lasīšanas.
Priekšrocības : optimizēta veiktspēja; darbojas visās Excel versijās
Trūkumi : garākā uzstādīšana
Lūk, kā Excel programmā izcelt atlasītās šūnas kolonnu un rindu. Paldies, ka izlasījāt, un ar nepacietību gaidīsim jūs mūsu blogā nākamnedēļ!
Prakses darba burtnīca lejupielādei
Aktīvās rindas un kolonnas izcelšana (.xlsm fails)