Koordinaatide valik

Teil on suur monitor, kuid lauad, millega töötate, on veelgi suuremad. Ja vajaliku teabe otsimisel üle ekraani vaadates on alati võimalus "libistada" silmad järgmisele reale ja vaadata vales suunas. Tean isegi inimesi, kes sellisteks puhkudeks hoiavad alati enda lähedal puidust joonlauda, ​​et see monitori nööri külge kinnitada. Tuleviku tehnoloogiad! 

Ja kui praegune rida ja veerg on esile tõstetud, kui aktiivne lahter liigub üle lehe? Selline koordinaatide valik:

Parem kui joonlaud, eks?

Selle rakendamiseks on mitu erineva keerukusega viisi. Igal meetodil on oma plussid ja miinused. Vaatame neid üksikasjalikult.

1. meetod. Ilmne. Makro, mis tõstab esile praeguse rea ja veeru

Kõige ilmsem viis meie probleemi lahendamiseks "otsmikul" – vajame makrot, mis jälgib lehe valiku muutust ja valib praeguse lahtri jaoks terve rea ja veeru. Soovitav on ka võimalus seda funktsiooni vajadusel lubada ja keelata, et selline ristikujuline valik ei takistaks meil näiteks valemeid sisestamast, vaid toimiks ainult siis, kui vajalikku otsides nimekirjast läbi vaatame. teavet. See viib meid kolme makro juurde (valige, lubage ja keelake), mis tuleb lehemoodulisse lisada.

Avage leht tabeliga, milles soovite sellist koordinaatide valikut saada. Paremklõpsake lehe vahekaarti ja valige kontekstimenüüst käsk Lähtetekst (Lähtekood).Visual Basicu redaktori aken peaks avanema. Kopeerige sellesse kolme makro tekst:

Dim Coord_Selection As Boolean 'Globaalne muutuja valikuks sees/väljas Sub Selection_On() 'Makro valikul Coord_Selection = True End Sub Selection_Off() 'Makro väljas valik Coord_Selection = Vale lõpu alam 'Peamine protseduur, mis teostab valiku Privaatne alamtööleht A Target_ByValChangeet A Vahemik) Dim WorkRange as Range Kui Target.Cells.Count > 1 Seejärel Exit Sub 'kui on valitud rohkem kui 1 lahter, väljuge Kui Coord_Selection = False Siis Välju Sub 'kui valik on välja lülitatud, välju Application.ScreenUpdating = False Määra WorkRange = Range (" A6:N300") 'tööpiirkonna aadress, milles valik on nähtav  

Muutke tööpiirkonna aadress enda omaks – meie valik töötab selles vahemikus. Seejärel sulgege Visual Basicu redaktor ja naaske Excelisse.

Vajutage klaviatuuri otseteed ALT + F8saadaolevate makrode loendiga akna avamiseks. Makro Valik_Sees, nagu võite arvata, sisaldab koordinaatide valikut aktiivsel lehel ja makrot Valik_väljas – lülitab selle välja. Samas aknas, klõpsates nuppu parameetrid (Valikud) Nendele makrodele saate hõlpsaks käivitamiseks määrata kiirklahve.

Selle meetodi eelised:

  • rakendamise suhteline lihtsus
  • valik – toiming on kahjutu ja ei muuda kuidagi lehe lahtrite sisu ega vormingut, kõik jääb nii nagu on

Selle meetodi miinused:

  • selline valik ei tööta õigesti, kui lehel on liidetud lahtreid – kõik ühendusse kuuluvad read ja veerud valitakse korraga
  • kui vajutate kogemata klahvi Kustuta, siis ei kustutata mitte ainult aktiivne lahter, vaid kogu valitud ala, st kustutatakse andmed kogu reast ja veerust

2. meetod. Originaal. CELL + tingimusliku vormindamise funktsioon

See meetod, kuigi sellel on paar puudust, tundub mulle väga elegantne. Et midagi realiseerida ainult sisseehitatud Exceli tööriistu kasutades, on VBA-s programmeerimisega tegelemine minimaalselt vigurlend 😉

Meetod põhineb funktsiooni CELL kasutamisel, mis võib antud lahtri kohta anda palju erinevat informatsiooni – kõrgus, laius, rea-veeru number, numbrivorming jne. Sellel funktsioonil on kaks argumenti:

  • parameetri koodsõna, näiteks "veerg" või "rida"
  • lahtri aadress, mille jaoks soovime selle parameetri väärtuse määrata

Trikk seisneb selles, et teine ​​argument on valikuline. Kui see pole määratud, võetakse praegune aktiivne lahter.

Selle meetodi teine ​​komponent on tingimuslik vormindamine. See äärmiselt kasulik Exceli funktsioon võimaldab teil lahtreid automaatselt vormindada, kui need vastavad kindlaksmääratud tingimustele. Kui ühendame need kaks ideed üheks, saame tingimusvormingu kaudu koordinaatide valiku rakendamiseks järgmise algoritmi:

  1. Valime oma tabeli ehk need lahtrid, milles peaks edaspidi kuvama koordinaatide valikut.
  2. Excel 2003 ja vanemates versioonides avage menüü Vorming – tingimuslik vormindamine – valem (Vorming – tingimuslik vormindamine – valem). Excel 2007 ja uuemates versioonides klõpsake vahekaarti Avaleht (Kodu)nupp Tingimuslik vormindamine – loo reegel (Tingimuslik vormindamine – loo reegel) ja valige reegli tüüp Vormindatavate lahtrite määramiseks kasutage valemit (Kasuta valemit)
  3. Sisestage meie koordinaatide valiku valem:

    =VÕI(CELL(“rida”)=RIDA(A2),CELL(“veerg”)=VEerg(A2))

    =VÕI(CELL(«rida»)=RIDA(A1),CELL(«veerg»)=VEerg(A1))

    See valem kontrollib, kas tabeli iga lahtri veeru number on sama, mis praeguse lahtri veeru number. Samamoodi veergudega. Seega täidetakse ainult need lahtrid, millel on kas veeru või rea number, mis vastab praegusele lahtrile. Ja see on ristikujuline koordinaatide valik, mida me tahame saavutada.

  4. press Raamistik (vorming) ja määrake täitevärv.

Kõik on peaaegu valmis, kuid on üks nüanss. Fakt on see, et Excel ei käsitle valiku muutmist lehel olevate andmete muutumisena. Selle tulemusena ei käivita see valemite ümberarvutamist ega tingimusvormingu värvimist ainult siis, kui aktiivse lahtri asukoht muutub. Seetõttu lisame lehemoodulile lihtsa makro, mis seda teeb. Paremklõpsake lehe vahekaarti ja valige kontekstimenüüst käsk Lähtetekst (Lähtekood).Visual Basicu redaktori aken peaks avanema. Kopeerige selle lihtsa makro tekst sellesse:

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

Nüüd, kui valik muutub, käivitatakse funktsiooniga valemi ümberarvutamise protsess KAMBER tingimusvormingus ja ujutage üle praegune rida ja veerg.

Selle meetodi eelised:

  • Tingimuslik vormindamine ei katkesta kohandatud tabelivormingut
  • See valikusuvand töötab ühendatud lahtritega õigesti.
  • Juhuslikul klõpsamisel pole ohtu terve andmerea ja -veeru kustutamiseks kustutama.
  • Makrosid kasutatakse minimaalselt

Selle meetodi miinused:

  • Tingimusliku vormingu valem tuleb sisestada käsitsi.
  • Sellise vormingu lubamiseks/keelamiseks pole kiiret võimalust – see on alati lubatud, kuni reegel on kustutatud.

3. meetod. Optimaalne. Tingimuslik vormindamine + makrod

Kuldne keskmine. Me kasutame lehel valiku jälgimise mehhanismi meetodi-1 makrode abil ja lisame sellele turvalise esiletõstmise, kasutades tingimusvormingut meetodist-2.

Avage leht tabeliga, milles soovite sellist koordinaatide valikut saada. Paremklõpsake lehe vahekaarti ja valige kontekstimenüüst käsk Lähtetekst (Lähtekood).Visual Basicu redaktori aken peaks avanema. Kopeerige sellesse kolme makro tekst:

Dim Coord_Selection As Boolean Sub Selection_On() Coord_Selection = True End Sub Sub Selection_Off() Coord_Selection = Vale lõpp Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range, CrossRange WorkRange As Range, CrossRange As Range =N Range (TööR"7 Range)300 'адрес рабочего диапазона с таблицей If Target.Count > 1 then Exit Sub If Coord_Selection = False then WorkRange.FormatConditions.Delete Välju alamlõpp If Application.ScreenUpdating = Väär, kui ei lõigu WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.ColorIndex =33ditions .Delete End If End Sub  

Ärge unustage muuta töövahemiku aadressi oma tabeli aadressiks. Sulgege Visual Basicu redaktor ja naaske Excelisse. Lisatud makrode kasutamiseks vajutage kiirklahvi ALT + F8  ja jätkake samamoodi nagu 1. meetodis. 

4. meetod. Ilus. FollowCellPointer lisandmoodul

Exceli MVP Hollandist pärit Jan Karel Pieterse jagab oma veebisaidil tasuta lisandmooduli Järgige CellPointerit(36Kb), mis lahendab sama probleemi, joonistades makrode abil praeguse rea ja veeru esiletõstmiseks graafilisi noolejooni:

 

Kena lahendus. Mitte ilma kohati tõrgeteta, aga proovimist tasub kindlasti. Laadige arhiiv alla, pakkige see kettale lahti ja installige lisandmoodul:

  • Excel 2003 ja vanemates versioonides – menüü kaudu Teenus – Lisandmoodulid – Ülevaade (Tööriistad — lisandmoodulid — sirvimine)
  • Excel 2007 ja uuemates versioonides Fail – Valikud – Lisandmoodulid – Mine – Sirvi (Fail — Exceli valikud — Lisandmoodulid — Mine — Sirvi)

  • Mis on makrod, kuhu Visual Basicus makrokoodi sisestada

 

Jäta vastus