Koordinatvalg

Du har en stor skærm, men de borde, du arbejder med, er endnu større. Og når du kigger over skærmen på jagt efter den nødvendige information, er der altid en chance for at "glide" dine øjne til den næste linje og se i den forkerte retning. Jeg kender endda folk, der til sådanne lejligheder altid holder en lineal af træ tæt på sig for at fastgøre den til linen på skærmen. Fremtidens teknologier! 

Og hvis den aktuelle række og kolonne er fremhævet, når den aktive celle bevæger sig hen over arket? En slags koordinatvalg som dette:

Bedre end en lineal, ikke?

Der er flere måder at variere kompleksiteten til at implementere dette. Hver metode har sine fordele og ulemper. Lad os se nærmere på dem.

Metode 1. Indlysende. Makro, der fremhæver den aktuelle række og kolonne

Den mest oplagte måde at løse vores problem "på panden" - vi har brug for en makro, der sporer ændringen i markeringen på arket og vælger hele rækken og kolonnen for den aktuelle celle. Det er også ønskeligt at kunne aktivere og deaktivere denne funktion, hvis det er nødvendigt, så et sådant krydsformet valg ikke forhindrer os i at indtaste for eksempel formler, men kun virker, når vi kigger listen igennem i søgen efter de nødvendige Information. Dette bringer os til de tre makroer (vælg, aktiver og deaktiver), som skal tilføjes til arkmodulet.

Åbn et ark med en tabel, hvor du ønsker at få sådan et koordinatvalg. Højreklik på arkfanen, og vælg kommandoen fra kontekstmenuen Kildetekst (Kildekode).Visual Basic Editor-vinduet skulle åbne. Kopier denne tekst af disse tre makroer ind i den:

Dim Coord_Selection As Boolean 'Global variabel for valg til/fra Sub Selection_On() 'Macro on selection Coord_Selection = True End Sub Selection_Off() 'Macro off selection Coord_Selection = False End Sub 'Hovedprocedure, der udfører valg Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range If Target.Cells.Count > 1 Then Exit Sub 'hvis mere end 1 celle er valgt, exit If Coord_Selection = False Then Exit Sub 'hvis valget er slået fra, exit Application.ScreenUpdating = False Set WorkRange = Range (" A6:N300") 'adresse på det arbejdsområde, inden for hvilket valget er synligt  

Skift adressen på arbejdsområdet til din egen – det er inden for dette område, at vores udvalg fungerer. Luk derefter Visual Basic Editor og vend tilbage til Excel.

Tryk på tastaturgenvejen ALT + F8for at åbne et vindue med en liste over tilgængelige makroer. Makro Selection_On, som du måske kan gætte, inkluderer koordinatvalg på det aktuelle ark og makroen Valg_Fra – slukker den. I samme vindue, ved at klikke på knappen parametre (Muligheder) Du kan tildele tastaturgenveje til disse makroer for nem start.

Fordele ved denne metode:

  • relativ nem implementering
  • valg – handlingen er harmløs og ændrer ikke indholdet eller formateringen af ​​arkcellerne på nogen måde, alt forbliver som det er

Ulemper ved denne metode:

  • sådan markering fungerer ikke korrekt, hvis der er flettede celler på arket - alle rækker og kolonner, der er inkluderet i foreningen, er valgt på én gang
  • hvis du ved et uheld trykker på Delete-tasten, så slettes ikke kun den aktive celle, men hele det markerede område, dvs. sletter data fra hele rækken og kolonnen

Metode 2. Original. CELL + Betinget formateringsfunktion

Denne metode, selvom den har et par ulemper, forekommer mig meget elegant. For at implementere noget ved kun at bruge de indbyggede Excel-værktøjer, er det minimalt at komme ind i programmering i VBA kunstflyvning 😉

Metoden er baseret på at bruge funktionen CELLE, som kan give en masse forskellig information om en given celle – højde, bredde, række-kolonne nummer, talformat osv. Denne funktion har to argumenter:

  • et kodeord for parameteren, såsom "kolonne" eller "række"
  • adressen på den celle, som vi ønsker at bestemme værdien af ​​denne parameter for

Tricket er, at det andet argument er valgfrit. Hvis det ikke er angivet, tages den aktuelle aktive celle.

Den anden komponent i denne metode er betinget formatering. Denne ekstremt nyttige Excel-funktion giver dig mulighed for automatisk at formatere celler, hvis de opfylder specificerede betingelser. Hvis vi kombinerer disse to ideer til én, får vi følgende algoritme til implementering af vores koordinatvalg gennem betinget formatering:

  1. Vi vælger vores tabel, altså de celler, hvori koordinatvalget skal vises i fremtiden.
  2. Åbn menuen i Excel 2003 og ældre Format – Betinget formatering – Formel (Format — Betinget formatering — Formel). I Excel 2007 og nyere – klik på fanen Home (Hjem). Betinget formatering – Opret regel (Betinget formatering – Opret regel) og vælg regeltypen Brug en formel til at bestemme, hvilke celler der skal formateres (Brug formel)
  3. Indtast formlen for vores koordinatvalg:

    =ELLER(CELLE(“række”)=RÆKKE(A2),CELLE(“kolonne”)=KOLONNE(A2))

    =ELLER(CELLE(«række»)=RÆKKE(A1),CELLE(«kolonne»)=KOLONNE(A1))

    Denne formel kontrollerer, om kolonnenummeret for hver celle i tabellen er det samme som kolonnenummeret for den aktuelle celle. Ligeledes med søjler. Det er således kun de celler, der enten har et kolonnenummer eller et rækkenummer, der matcher den aktuelle celle, der bliver udfyldt. Og det er det krydsformede koordinatvalg, vi ønsker at opnå.

  4. Klik på knappen Framework (format) og indstil fyldfarven.

Alt er næsten klar, men der er en nuance. Faktum er, at Excel ikke betragter en ændring i udvalget som en ændring i dataene på arket. Og som et resultat udløser det ikke genberegning af formler og nyfarvning af betinget formatering, når positionen af ​​den aktive celle ændres. Lad os derfor tilføje en simpel makro til arkmodulet, der vil gøre dette. Højreklik på arkfanen, og vælg kommandoen fra kontekstmenuen Kildetekst (Kildekode).Visual Basic Editor-vinduet skulle åbne. Kopier denne tekst af denne simple makro ind i den:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveCell.Calculate End Sub  

Nu, når valget ændres, vil processen med genberegning af formlen med funktionen blive lanceret CELLE i betinget formatering og oversvømme den aktuelle række og kolonne.

Fordele ved denne metode:

  • Betinget formatering bryder ikke tilpasset tabelformatering
  • Denne valgmulighed fungerer korrekt med flettede celler.
  • Ingen risiko for at slette en hel række og kolonne med data ved et utilsigtet klik Slette.
  • Makroer bruges minimalt

Ulemper ved denne metode:

  • Formlen for betinget formatering skal indtastes manuelt.
  • Der er ingen hurtig måde at aktivere/deaktivere sådan formatering - den er altid aktiveret, indtil reglen er slettet.

Metode 3. Optimal. Betinget formatering + makroer

Gylden middelvej. Vi bruger mekanismen til at spore markeringen på arket ved hjælp af makroer fra metode-1 og tilføjer sikker fremhævning til det ved hjælp af betinget formatering fra metode-2.

Åbn et ark med en tabel, hvor du ønsker at få sådan et koordinatvalg. Højreklik på arkfanen, og vælg kommandoen fra kontekstmenuen Kildetekst (Kildekode).Visual Basic Editor-vinduet skulle åbne. Kopier denne tekst af disse tre makroer ind i den:

Dim Coord_Selection As Boolean Sub Selection_On() Coord_Selection = True End Sub Sub Selection_Off() Coord_Selection = False End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range, CrossRange As Range Set WorkRange = Range("A7"):N300") 'адрес рабочего диапазона с таблицей If Target.Count > 1 Then Exit Sub If Coord_Selection = False Then WorkRange.FormatConditions.Delete Exit Sub End If Application.ScreenUpdating = False If Not Is No Intersect(TargetR) WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.ColorIndex.FormatConditions.FormatConditions .Slet End If End Sub  

Glem ikke at ændre arbejdsområdets adresse til din bordadresse. Luk Visual Basic Editor og vend tilbage til Excel. For at bruge de tilføjede makroer skal du trykke på tastaturgenvejen ALT + F8  og fortsæt på samme måde som metode 1. 

Metode 4. Smuk. FollowCellPointer-tilføjelse

Excel MVP Jan Karel Pieterse fra Holland giver en gratis tilføjelse væk på sin hjemmeside Følg CellPointer(36Kb), som løser det samme problem ved at tegne grafiske pilelinjer ved hjælp af makroer for at fremhæve den aktuelle række og kolonne:

 

Fin løsning. Ikke uden fejl på steder, men bestemt et forsøg værd. Download arkivet, pak det ud til disk og installer tilføjelsen:

  • i Excel 2003 og ældre – gennem menuen Service – Tilføjelser – Oversigt (Værktøjer — Tilføjelsesprogrammer — Gennemse)
  • i Excel 2007 og senere, til og med Fil – Indstillinger – Tilføjelser – Gå – Gennemse (Fil — Excel-indstillinger — Tilføjelsesprogrammer — Gå til — Gennemse)

  • Hvad er makroer, hvor skal man indsætte makrokode i Visual Basic

 

Giv en kommentar