Innholdsfortegnelse
I denne opplæringen vil du lære 3 forskjellige måter å dynamisk fremheve raden og kolonnen til en valgt celle i Excel.
Når du ser på et stort regneark over lengre tid, kan du kan til slutt miste oversikten over hvor markøren er og hvilke data du ser på. For å vite nøyaktig hvor du er når som helst, få Excel til å automatisk fremheve den aktive raden og kolonnen for deg! Naturligvis skal uthevingen være dynamisk og endres hver gang du velger en annen celle. I hovedsak er dette hva vi har som mål å oppnå:
Autouthev rad og kolonne i valgt celle med VBA
Dette eksempel viser hvordan du kan markere en aktiv kolonne og rad programmatisk med VBA. For dette vil vi bruke SelectionChange -hendelsen til Worksheet -objektet.
Først fjerner du bakgrunnsfargen til alle cellene på arket ved å sette ColorIndex -egenskapen til 0. Og så markerer du hele raden og kolonnen til den aktive cellen ved å sette deres ColorIndex -egenskap til indeksnummeret for ønsket farge.
Private Sub Worksheet_SelectionChange (ByVal Target As Range) Hvis Target.Cells.Count > 1 Avslutt deretter Sub Application.ScreenUpdating = False 'Tøm fargen på alle cellene Cells.Interior.ColorIndex = 0 Med Target 'Uthev rad og kolonne i den valgte cellen .EntireRow.Interior.ColorIndex = 38.EntireColumn.Interior.ColorIndex = 24 End With Application.ScreenUpdating = True End SubTilpasse koden
Hvis du ønsker å tilpasse koden etter dine behov, kan disse små tipsene være nyttige:
- Vår eksempelkode bruker to forskjellige farger vist i gif-en ovenfor - fargeindeks 38 for rad og 24 for kolonne. For å endre uthevingsfargen , erstatt de med en hvilken som helst ColorIndex-kode du velger.
- For å få raden og kolonnen farget på samme måte , bruk den samme fargeindeksnummer for begge.
- For bare å markere den aktive raden , fjern eller kommenter ut denne linjen: .EntireColumn.Interior.ColorIndex = 24
- For bare å markere den aktive kolonnen , fjern eller kommenter ut denne linjen: .EntireRow.Interior.ColorIndex = 38
Hvordan legge til koden til regnearket ditt
For å få koden eksekveret i stillhet i bakgrunnen til et spesifikt regneark, må du sette den inn i kodevinduet som tilhører det regnearket, ikke i den vanlige modulen. For å få det gjort, utfør disse trinnene:
- I arbeidsboken, trykk Alt + F11 for å komme til VBA-redigeringsprogrammet.
- I prosjektutforskeren til venstre, vil se en liste over alle åpne arbeidsbøker og deres regneark. Hvis du ikke ser det, bruk snarveien Ctrl + R for å vise Project Explorer-vinduet.
- Finn målarbeidsboken. I sin Microsoft ExcelObjekter -mappen, dobbeltklikk på arket der du vil bruke utheving. I dette eksemplet er det Ark 1 .
- I kodevinduet til høyre limer du inn koden ovenfor.
- Lagre filen som Makroaktivert arbeidsbok (.xlsm).
Fordeler : alt gjøres i backend; ingen justeringer/tilpasninger er nødvendig på brukerens side; fungerer i alle Excel-versjoner.
Ulemper : det er to vesentlige ulemper som gjør denne teknikken ubrukelig under visse omstendigheter:
- Koden rydder bakgrunnen farger av alle cellene i regnearket. Hvis du har noen fargede celler, ikke bruk denne løsningen fordi din egendefinerte formatering vil gå tapt.
- Kjøring av denne koden blokkerer angrefunksjonaliteten på arket, og du vil ikke kunne angre en feilhandling ved å trykke Ctrl + Z .
Uthev aktiv rad og kolonne uten VBA
Det beste du kan få for å markere den valgte raden og /eller kolonne uten VBA er Excels betingede formatering. For å konfigurere det, utfør disse trinnene:
- Velg datasettet der uthevingen skal gjøres.
- På Hjem -fanen, i Stiler -gruppen, klikk Ny regel .
- I dialogboksen Ny formateringsregel velger du Bruk en formel for å bestemme hvilke celler som skal format .
- I Formatverdiene der denne formelener sann -boksen, skriv inn en av disse formlene:
For å markere aktiv rad :
=CELL("row")=ROW()
For å markere aktiv kolonne :
=CELL("col")=COLUMN()
For å markere aktiv rad og kolonne :
=OR(CELL("row")=ROW(), CELL("col")= COLUMN())
Alle formlene bruker CELL-funksjonen for å returner rad-/kolonnenummeret til den valgte cellen.
- Klikk Format -knappen, bytt til Fyll -fanen og velg fargen du liker.
- Klikk OK to ganger for å lukke begge dialogvinduene.
Hvis du føler at du trenger mer detaljerte instruksjoner, vennligst se Hvordan lage formelbasert betinget formateringsregel.
For dette eksemplet valgte vi ELLER formel for å skyggelegge både kolonnen og raden i samme farge. Det krever mindre arbeid og passer for de fleste tilfeller.
Dessverre er ikke denne løsningen like fin som VBA-en fordi den krever omberegning av arket manuelt (ved å trykke på F9-tasten). Som standard beregner Excel et regneark på nytt etter å ha lagt inn nye data eller redigert det eksisterende, men ikke når valget endres. Så du velger en annen celle - ingenting skjer. Trykk F9 - arket oppdateres, formelen beregnes på nytt, og uthevingen oppdateres.
For å få regnearket beregnet på nytt automatisk hver gang SelectionChange -hendelsen oppstår, kan du plassere denne enkle VBA-koden i kodemodulen på målarket ditt som forklart iforrige eksempel:
Private Sub Worksheet_SelectionChange( ByVal Target As Range) Target.Calculate End SubKoden tvinger det valgte området/cellen til å beregne på nytt, noe som igjen tvinger CELL-funksjonen til å oppdatere og den betingede formateringen til å reflektere endringen.
Fordeler : i motsetning til den forrige metoden, påvirker ikke denne den eksisterende formateringen du har brukt manuelt.
Ulemper : kan forverre Excels ytelse.
- For at den betingede formateringen skal fungere, må du tvinge Excel til å beregne formelen på nytt ved hver valgendring (enten manuelt med F9-tasten eller automatisk med VBA). Tvungede omberegninger kan bremse Excel. Siden vår kode beregner utvalget på nytt i stedet for et helt ark, vil en negativ effekt mest sannsynlig bare være merkbar på virkelig store og komplekse arbeidsbøker.
- Siden CELL-funksjonen er tilgjengelig i Excel 2007 og høyere, vil metoden fungerer i tidligere versjoner.
Uthev valgt rad og kolonne ved hjelp av betinget formatering og VBA
Hvis den forrige metoden bremser arbeidsboken din betraktelig, kan du tilnærme oppgaven annerledes - i stedet å beregne et regneark på nytt ved hvert brukertrekk, få det aktive rad-/kolonnenummeret ved hjelp av VBA, og deretter servere dette nummeret til ROW()- eller COLUMN()-funksjonen ved å bruke betingede formateringsformler.
For å oppnå dette,her er trinnene du må følge:
- Legg til et nytt blankt ark i arbeidsboken og gi det navnet Hjelperark . Det eneste formålet med dette arket er å lagre to tall som representerer raden og kolonnen som inneholder en valgt celle, slik at du trygt kan skjule arket på et senere tidspunkt.
- Sett inn VBA nedenfor i kodevinduet i regnearket. hvor du ønsker å implementere fremheving. For detaljerte instruksjoner, se vårt første eksempel. Private Sub Worksheet_SelectionChange( ByVal Target As Range) Application.ScreenUpdating = False Worksheets( "Hjelper Sheet" ).Cells(2, 1) = Target.Row Worksheets( "Helper Sheet" ).Cells(2, 2) = Target.Column Application.ScreenUpdating = True End Sub
Koden ovenfor plasserer koordinatene til den aktive raden og kolonnen til arket kalt "Helper Sheet". Hvis du ga arket ditt et annet navn i trinn 1, endre regnearkets navn i koden tilsvarende. Radnummeret skrives til A2 og kolonnenummeret til B2.
- I målregnearket, velg hele datasettet, og lag en betinget formateringsregel med formlene nedenfor. Trinn-for-trinn-veiledningen er gitt i eksemplet ovenfor.
Og nå, la oss dekke de tre hovedbrukstilfellene i detalj.
Hvordan markere aktiv rad
For å markere raden der markøren er plassert for øyeblikket, konfigurer en betinget formateringsregel med denneformel:
=ROW()='Helper Sheet'!$A$2
Som et resultat kan brukeren tydelig se hvilken rad som er valgt for øyeblikket:
Hvordan markere aktiv kolonne
For å markere den valgte kolonnen, mater du kolonnenummeret til COLUMN-funksjonen ved å bruke denne formelen:
=COLUMN()='Helper Sheet'!$B$2
Nå lar en uthevet kolonne deg komfortabelt og enkelt lese vertikale data og fokuserer helt på den.
Hvordan markere aktive rader og kolonner
For å få både den valgte raden og kolonnen skyggelagt automatisk i samme farge, kombiner funksjonene ROW() og COLUMN() til én formel:
=OR(ROW()='Helper Sheet'!$A$2, COLUMN()='Helper Sheet'!$B$2)
De relevante dataene settes umiddelbart i fokus, slik at du kan unngå feillesing.
Fordeler : optimalisert ytelse; fungerer i alle Excel-versjoner
Ulemper : det lengste oppsettet
Slik markerer du kolonnen og raden i en valgt celle i Excel. Jeg takker for at du leser og ser frem til å se deg på bloggen vår neste uke!
Øvningsarbeidsbok for nedlasting
Utheving av aktiv rad og kolonne (.xlsm-fil)