Ynhâldsopjefte
Yn dizze tutorial sille jo 3 ferskillende manieren leare om de rige en kolom fan in selektearre sel yn Excel dynamysk te markearjen.
As jo in grut wurkblêd foar in lange tiid besjen, kinne jo kin úteinlik spoar ferlieze wêr't jo rinnerke is en hokker gegevens jo sjogge. Om krekt te witten wêr't jo op elk momint binne, krije Excel om automatysk de aktive rige en kolom foar jo te markearjen! Fansels moat de markearring dynamysk wêze en elke kear feroarje as jo in oare sel selektearje. Yn essinsje is dit wat wy fan doel binne te berikken:
Auto-markearje rige en kolom fan selekteare sel mei VBA
Dit foarbyld lit sjen hoe't jo kinne markearje in aktive kolom en rige programmatysk mei VBA. Hjirfoar sille wy it SelectionChange -evenemint fan it Wurkblêd -objekt brûke.
Earst wiskje jo de eftergrûnkleur fan alle sellen op it blêd troch it ynstellen fan de ColorIndex eigenskip nei 0. En dan markearje jo de hiele rige en kolom fan 'e aktive sel troch har ColorIndex eigenskip yn te stellen op it yndeksnûmer foar de winske kleur.
Private Sub Worksheet_SelectionChange (ByVal Target As Range) As Target.Cells.Count & GT; 1 Dan ôfslute Sub Application.ScreenUpdating = False 'De kleur fan alle sellen wiskje Cells.Interior.ColorIndex = 0 Mei Doel 'Markearje rige en kolom fan de selektearre sel .EntireRow.Interior.ColorIndex = 38.EntireColumn.Interior.ColorIndex = 24 Ein mei Application.ScreenUpdating = True End SubDe koade oanpasse
As jo de koade oanpasse wolle foar jo behoeften, kinne dizze lytse tips fan pas komme:
- Us foarbyldkoade brûkt twa ferskillende kleuren oantoand yn 'e boppesteande gif - kleuryndeks 38 foar rige en 24 foar kolom. Om de markearkleur te feroarjen , ferfange dy gewoan troch elke ColorIndex-koades fan jo kar.
- Om de rige en kolom op deselde manier ynkleure te krijen, brûk deselde kleuryndeksnûmer foar beide.
- Om allinich de aktive rige te markearjen, fuortsmite of kommentaar út dizze rigel: .EntireColumn.Interior.ColorIndex = 24
- Om allinich de aktive kolom te markearjen, fuortsmite of kommentaar út dizze rigel: .EntireRow.Interior.ColorIndex = 38
Hoe kinne jo de koade tafoegje nei jo wurkblêd
Om de koade stil út te fieren op 'e eftergrûn fan in spesifyk wurkblêd, moatte jo it ynfoegje yn it koadefinster dat by dat wurkblêd heart, net yn 'e normale module. Om it dien te hawwen, fiere dizze stappen út:
- Druk yn jo wurkboek op Alt + F11 om nei de VBA-bewurker te kommen.
- Yn de Project Explorer oan de linkerkant kinne jo' ll sjoch in list fan alle iepen wurkboeken en harren wurkblêden. As jo it net sjogge, brûk dan de fluchtoets Ctrl + R om it Project Explorer-finster te besjen.
- Fyn it doelwurkboek. Yn har Microsoft ExcelObjekt map, dûbelklikje op it blêd wêryn jo markearring tapasse wolle. Yn dit foarbyld is it Sheet 1 .
- Yn it Koadefinster oan de rjochterkant plakke de boppesteande koade.
- Bewarje jo bestân as Makro-ynskeakele wurkboek (.xlsm).
Foardielen : alles wurdt dien yn 'e efterkant; gjin oanpassings / oanpassings binne nedich oan 'e kant fan' e brûker; wurket yn alle Excel-ferzjes.
Neidielen : d'r binne twa essensjele minpunten dy't dizze technyk ûnder bepaalde omstannichheden net fan tapassing meitsje:
- De koade wist eftergrûn kleuren fan alle sellen yn it wurkblêd. As jo kleurde sellen hawwe, brûk dan dizze oplossing net, om't jo oanpaste opmaak ferlern gean sil.
- It útfieren fan dizze koade blokkearret de ûngedienfunksje op it blêd, en jo kinne in ferkearde aksje net ûngedien meitsje troch op Ctrl + Z te drukken.
Markearje aktive rige en kolom sûnder VBA
It bêste dat jo kinne krije om de selektearre rige te markearjen en / of kolom sûnder VBA is de betingste opmaak fan Excel. Om it yn te stellen, fiere dizze stappen út:
- Selektearje jo dataset wêryn't markearring dien wurde moat.
- Op de Thús ljepper, yn de Stylen groep, klik op Nije regel .
- Yn it dialoochfinster Nije opmaakregel kies Gebrûk in formule om te bepalen hokker sellen jo wolle opmaak .
- Yn de Opmaakwearden dêr't dizze formuleis wier fak, fier ien fan dizze formules yn:
Om aktive rige te markearjen:
=CELL("row")=ROW()
Om aktive kolom te markearjen :
=CELL("col")=COLUMN()
Om aktive rigel en kolom te markearjen:
=OR(CELL("row")=ROW(), CELL("col")= COLUMN())
Alle formules meitsje gebrûk fan de CELL-funksje om werom it rige / kolom nûmer fan de selektearre sel.
- Klik op de knop Opmaak , wikselje nei it ljepblêd Folje en selektearje de kleur dy't jo wolle.
- Klik twa kear op OK om te sluten beide dialoochfinsters.
As jo fiele dat jo mear detaillearre ynstruksjes nedich hawwe, sjoch dan hoe't jo formule-basearre betingsten opmaakregel meitsje.
Foar dit foarbyld hawwe wy keazen foar de OF formule om sawol de kolom as de rige yn deselde kleur te skaadjen. Dat kostet minder wurk en is geskikt foar de measte gefallen.
Spitigernôch is dizze oplossing net sa moai as de VBA, om't it nedich is om it blêd mei de hân te berekkenjen (troch op de F9-toets te drukken). Standert berekkent Excel in wurkblêd allinich nei it ynfieren fan nije gegevens of it bewurkjen fan de besteande, mar net as de seleksje feroaret. Dus, jo selektearje in oare sel - neat bart. Druk op F9 - it blêd wurdt ferfarske, de formule wurdt opnij berekkene en de markearring wurdt bywurke.
Om it wurkblêd automatysk opnij te berekkenjen as it evenemint SelectionChange foarkomt, kinne jo dizze ienfâldige VBA-koade pleatse yn 'e koademodule fan jo doelblêd lykas útlein ynit foarige foarbyld:
Private Sub Worksheet_SelectionChange( ByVal Target As Range) Target.Calculate End SubDe koade twingt it selektearre berik/sel om te berekkenjen, wat op syn beurt de CELL-funksje twingt om te aktualisearjen en de betingstlike opmaak om te reflektearjen de feroaring.
Foardielen : yn tsjinstelling ta de foarige metoade hat dizze gjin ynfloed op de besteande opmaak dy't jo hân hawwe tapast.
Nimmen : mei fergrutsje de prestaasjes fan Excel.
- Om de betingsten opmaak te wurkjen, moatte jo Excel twinge om de formule op 'e nij te berekkenjen by elke seleksjeferoaring (mei de hân mei de F9-kaai of automatysk mei VBA). Forced werberekkeningen kinne jo Excel fertrage. Om't ús koade de seleksje op 'e nij berekkent ynstee fan in folslein blêd, sil in negatyf effekt nei alle gedachten allinich te merken wêze op echt grutte en komplekse wurkboeken.
- Om't de CELL-funksje beskikber is yn Excel 2007 en heger, sil de metoade' t wurkje yn eardere ferzjes.
Markearje selekteare rige en kolom mei betingstlike opmaak en VBA
Yn gefal de foarige metoade jo wurkboek flink fertraagt, kinne jo de taak oars benaderje - ynstee fan it opnij berekkenjen fan in wurkblêd op elke brûker beweging, krije it aktive rige / kolom nûmer mei help fan VBA, en dan tsjinje dat nûmer oan de ROW () of COLUMN () funksje mei help fan betingsten opmaak formules.
Om folbringe dit,hjir binne de stappen dy't jo moatte folgje:
- Foegje in nij leech blêd ta oan jo wurkboek en neam it Helperblêd . It ienige doel fan dit blêd is om twa nûmers op te slaan dy't de rige en kolom fertsjintwurdigje dy't in selektearre sel befetsje, sadat jo it blêd op in letter punt feilich ferbergje kinne.
- Foegje de ûndersteande VBA yn it koadefinster fan it wurkblêd yn. wêr't jo markearring wolle ymplementearje. Foar de detaillearre ynstruksjes, ferwize nei ús earste foarbyld. 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
De boppesteande koade pleatst de koördinaten fan de aktive rige en kolom op it blêd mei de namme "Helper Sheet". As jo jo blêd oars neamden yn stap 1, feroarje dan de namme fan it wurkblêd yn 'e koade. It rigenûmer wurdt skreaun nei A2 en it kolomnûmer nei B2.
- Selektearje yn jo doelwurkblêd de folsleine dataset, en meitsje in regel foar betingst opmaak mei de ûndersteande formules. De stap-foar-stap begelieding wurdt jûn yn it boppesteande foarbyld.
En no litte wy de trije haadgebrûksgefallen yn detail dekke.
Hoe kinne jo aktive rige markearje
Om de rige te markearjen wêr't jo rinnerke op it stuit pleatst is, set in regel foar betingst opmaak mei dizzeformule:
=ROW()='Helper Sheet'!$A$2
As resultaat kin de brûker dúdlik sjen hokker rige op it stuit selektearre is:
Hoe kinne jo aktive kolom markearje
Om de selektearre kolom te markearjen, feed it kolomnûmer nei de funksje KOLUMN mei dizze formule:
=COLUMN()='Helper Sheet'!$B$2
No, in markearre kolom lit jo fertikale gegevens komfortabel en sûnder muoite lêze, dy't jo derop rjochtsje.
Hoe kinne jo aktive rige en kolom markearje
Om sawol de selektearre rige as de kolom automatysk yn deselde kleur skaad te krijen, kombinearje de ROW() en COLUMN() funksjes yn ien formule:
=OR(ROW()='Helper Sheet'!$A$2, COLUMN()='Helper Sheet'!$B$2)
De relevante gegevens wurde fuortendaliks yn fokus brocht, sadat jo it ferkeard lêzen kinne foarkomme.
Foardielen : optimalisearre prestaasjes; wurket yn alle Excel-ferzjes
Neidielen : de langste opset
Sa markearje jo de kolom en rige fan in selektearre sel yn Excel. Ik tankje jo foar it lêzen en sjoch út nei jo nije wike op ús blog te sjen!
Oefeningswurkboek foar download
Aktive rige en kolom markearje (.xlsm-bestân)