Координаттарды таңдау

Сізде үлкен монитор бар, бірақ сіз жұмыс істейтін үстелдер одан да үлкен. Қажетті ақпаратты іздеу үшін экранға қарап, келесі жолға көзіңізді «сүртіп», дұрыс емес бағытта қарауға әрқашан мүмкіндік бар. Мен тіпті осындай жағдайларда ағаш сызғышты монитордағы сызыққа бекіту үшін әрқашан қасында ұстайтын адамдарды білемін. Болашақтың технологиялары! 

Ал егер белсенді ұяшық парақта қозғалған кезде ағымдағы жол мен баған бөлектелсе? Мынадай координаттарды таңдаудың бір түрі:

Билеушіден жақсы, солай ма?

Мұны жүзеге асыру үшін әртүрлі күрделіліктің бірнеше жолы бар. Әрбір әдістің оң және теріс жақтары бар. Оларды егжей-тегжейлі қарастырайық.

1-әдіс. Айқын. Ағымдағы жолды және бағанды ​​ерекшелейтін макрос

«Маңдайдағы» мәселемізді шешудің ең айқын жолы - бізге парақтағы таңдаудың өзгеруін бақылайтын және ағымдағы ұяшық үшін бүкіл жол мен бағанды ​​таңдайтын макрос қажет. Сондай-ақ қажет болған жағдайда бұл функцияны қосу және өшіру мүмкіндігі болуы керек, осылайша крест тәрізді таңдау бізге, мысалы, формулаларды енгізуге кедергі жасамайды, бірақ біз қажетті іздеуде тізімді қарап шыққанда ғана жұмыс істейді. ақпарат. Бұл бізді парақ модуліне қосу қажет үш макросқа (таңдау, қосу және өшіру) әкеледі.

Осындай координаттарды таңдауды алғыңыз келетін кесте бар парақты ашыңыз. Парақ қойындысын тінтуірдің оң жақ түймешігімен басып, контекстік мәзірден пәрменді таңдаңыз Бастапқы мәтін (Бастапқы код).Visual Basic редакторының терезесі ашылуы керек. Осы үш макростың мәтінін оған көшіріңіз:

Dim Coord_Selection Логикалық ретінде 'Таңдау үшін жаһандық айнымалы қосу/өшіру Sub Selection_On() 'Таңдау бойынша макрос Coord_Selection = True End Sub Selection_Off() 'Макрос өшірулі таңдау Coord_Selection = False End Sub 'Таңдауды орындайтын негізгі процедура Private SubC Worksheet_Seley(Seley) Ауқым) Егер Target.Cells.Count > 1 болса, WorkRange диапазон ретінде күңгірттеніңіз, содан кейін '1-ден көп ұяшық таңдалса, ішкі параметрден шығыңыз. Coord_Selection = False, содан кейін тармақтан шығыңыз, егер таңдау өшірулі болса, Application.ScreenUpdating = False Set WorkRange = диапазоннан шығыңыз. (" A6:N300") 'таңдау көрінетін жұмыс ауқымының мекенжайы  

Жұмыс диапазонының мекенжайын өзіңізге өзгертіңіз – дәл осы ауқымда біздің таңдауымыз жұмыс істейді. Содан кейін Visual Basic өңдегішін жауып, Excel бағдарламасына оралыңыз.

Пернелер тіркесімін басыңыз ALT + F8қол жетімді макростар тізімі бар терезені ашу үшін. Макро Таңдау_қосу, сіз болжағандай, ағымдағы парақта координаттарды таңдауды және макросты қамтиды Таңдау_өшіру – өшіреді. Сол терезеде түймені басу арқылы Параметрлер (Опциялар) Оңай іске қосу үшін осы макростарға пернелер тіркесімін тағайындауға болады.

Бұл әдістің артықшылықтары:

  • орындаудың салыстырмалы жеңілдігі
  • таңдау – операция зиянсыз және парақ ұяшықтарының мазмұнын немесе пішімдеуін ешбір жолмен өзгертпейді, бәрі бұрынғыдай қалады.

Бұл әдістің кемшіліктері:

  • парақта біріктірілген ұяшықтар болса, мұндай таңдау дұрыс жұмыс істемейді – біріктіруге енгізілген барлық жолдар мен бағандар бірден таңдалады.
  • егер сіз байқаусызда Delete пернесін бассаңыз, онда белсенді ұяшық қана емес, бүкіл таңдалған аймақ, яғни бүкіл жол мен бағандағы деректерді өшіреді.

2-әдіс. Түпнұсқа. CELL + Шартты пішімдеу функциясы

Бұл әдіс, оның бірнеше кемшіліктері болса да, маған өте талғампаз болып көрінеді. Тек кірістірілген Excel құралдарын пайдаланып бірдеңені жүзеге асыру үшін VBA-да бағдарламалауға аз ғана кірісу - бұл пилотаж 😉

Әдіс берілген ұяшықта әртүрлі ақпаратты – биіктік, ені, жол-баған нөмірі, сан пішімі және т.б. бере алатын CELL функциясын пайдалануға негізделген. Бұл функцияның екі аргументі бар:

  • параметр үшін код сөзі, мысалы, «баған» немесе «жол»
  • осы параметрдің мәнін анықтағымыз келетін ұяшықтың мекенжайы

Бұл екінші аргумент міндетті емес. Егер ол көрсетілмесе, ағымдағы белсенді ұяшық алынады.

Бұл әдістің екінші компоненті шартты пішімдеу болып табылады. Бұл өте пайдалы Excel мүмкіндігі, егер олар көрсетілген шарттарға сай болса, ұяшықтарды автоматты түрде пішімдеуге мүмкіндік береді. Егер біз осы екі идеяны біріктірсек, шартты пішімдеу арқылы координаттарды таңдауды жүзеге асыру үшін келесі алгоритмді аламыз:

  1. Біз кестемізді таңдаймыз, яғни болашақта координата таңдауы көрсетілетін ұяшықтарды таңдаймыз.
  2. Excel 2003 және одан жоғары нұсқаларында мәзірді ашыңыз Формат – Шартты пішімдеу – Формула (Формат — Шартты пішімдеу — Формула). Excel 2007 және одан кейінгі нұсқаларында – қойындыны басыңыз Home (Үй)түйме Шартты пішімдеу – Ереже жасау (Шартты пішімдеу — Ереже жасау) және ереже түрін таңдаңыз Қай ұяшықтарды пішімдеу керектігін анықтау үшін формуланы пайдаланыңыз (Формуланы қолдану)
  3. Координаталарды таңдау үшін формуланы енгізіңіз:

    =НЕМЕСЕ(ҰЯШЫҚ("жол")=ҚОЛ(A2),ҰЯШЫҚ("баған")=БАҒАН(A2))

    =НЕМЕСЕ(ҰЯШЫҚ(«жол»)=ҚОЛ(A1),ҰЯШЫҚ(«баған»)=БАҒАН(A1))

    Бұл формула кестедегі әрбір ұяшықтың баған нөмірі ағымдағы ұяшықтың баған нөмірімен бірдей екенін тексереді. Бағандар сияқты. Осылайша, ағымдағы ұяшыққа сәйкес келетін баған нөмірі немесе жол нөмірі бар ұяшықтар ғана толтырылады. Бұл біз қол жеткізгіміз келетін көлденең пішінді координаттарды таңдау.

  4. баспасөз негіздемелік (Пішім) және толтыру түсін орнатыңыз.

Барлығы дерлік дайын, бірақ бір нюанс бар. Мәселе мынада, Excel таңдаудағы өзгерісті парақтағы деректердің өзгеруі ретінде қарастырмайды. Нәтижесінде, ол белсенді ұяшықтың орны өзгерген кезде ғана формулаларды қайта есептеуді және шартты пішімдеуді қайта бояуды іске қоспайды. Сондықтан, мұны орындайтын парақ модуліне қарапайым макросты қосамыз. Парақ қойындысын тінтуірдің оң жақ түймешігімен басып, контекстік мәзірден пәрменді таңдаңыз Бастапқы мәтін (Бастапқы код).Visual Basic редакторының терезесі ашылуы керек. Осы қарапайым макростың мәтінін оған көшіріңіз:

Private Sub Worksheet_SelectionChange(Ауқым ретіндегі мақсатты мән) ActiveCell.Соңындағы ішкіні есептеу  

Енді таңдау өзгерген кезде функциямен формуланы қайта есептеу процесі іске қосылады ҰЯША шартты пішімдеуде және ағымдағы жол мен бағанды ​​толтырыңыз.

Бұл әдістің артықшылықтары:

  • Шартты пішімдеу теңшелетін кесте пішімдеуін бұзбайды
  • Бұл таңдау опциясы біріктірілген ұяшықтармен дұрыс жұмыс істейді.
  • Кездейсоқ басу кезінде деректердің толық жолын және бағанын жою қаупі жоқ Жою.
  • Макростар аз қолданылады

Бұл әдістің кемшіліктері:

  • Шартты пішімдеу формуласын қолмен енгізу керек.
  • Мұндай пішімдеуді қосу/өшірудің жылдам жолы жоқ – ол ереже жойылмайынша әрқашан қосылады.

3-әдіс. Оңтайлы. Шартты пішімдеу + макростар

Алтын орта. Біз 1-әдістегі макростарды пайдаланып парақтағы таңдауды бақылау механизмін қолданамыз және оған 2-әдістегі шартты пішімдеу арқылы қауіпсіз бөлектеуді қосамыз.

Осындай координаттарды таңдауды алғыңыз келетін кесте бар парақты ашыңыз. Парақ қойындысын тінтуірдің оң жақ түймешігімен басып, контекстік мәзірден пәрменді таңдаңыз Бастапқы мәтін (Бастапқы код).Visual Basic редакторының терезесі ашылуы керек. Осы үш макростың мәтінін оған көшіріңіз:

Логикалық ішкі таңдау ретінде күңгірт коорд_таңдау_On() Coord_Selection = True End Sub Sub Selection_Off() Coord_Selection = False End Sub Private Sub Worksheet_SelectionChange(Ауқым ретіндегі мақсатты диапазон бойынша) Dim WorkRange диапазон ретінде, CrossRange WorkRange ретінде Dim WorkRange (Ауқым 7) 'adres рабочего диапазона с таблице If Target.Count > 300 Содан кейін Exit Sub If Coord_Selection = False, then WorkRange.FormatConditions.Delete Exit Sub End If Application.ScreenUpdating = False If Intersect(Target, WorkRange) Ештеңе емес, содан кейін Intersect = Set CrossRan( WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.Color1Conditions =Format. .End If End Sub тармағын жою  

Жұмыс ауқымының мекенжайын кесте мекенжайына өзгертуді ұмытпаңыз. Visual Basic өңдегішін жауып, Excel бағдарламасына оралыңыз. Қосылған макростарды пайдалану үшін пернелер тіркесімін басыңыз ALT + F8  және 1-әдіспен бірдей әрекет етіңіз. 

4-әдіс. Әдемі. FollowCellPointer қондырмасы

Нидерландыдан келген Excel MVP Ян Карел Питерсе өз веб-сайтында тегін қосымшаны береді FollowCellPointer(36Кб), ол ағымдағы жолды және бағанды ​​бөлектеу үшін макростарды пайдаланып графикалық көрсеткі сызықтарын салу арқылы бірдей мәселені шешеді:

 

Жақсы шешім. Бір жерде ақауларсыз емес, бірақ міндетті түрде көріңіз. Мұрағатты жүктеп алып, оны дискіге шығарып, қондырманы орнатыңыз:

  • Excel 2003 және одан жоғары нұсқаларында – мәзір арқылы Қызмет – Қосымшалар – Шолу (Құралдар — Қондырмалар — Шолу)
  • Excel 2007 және одан кейінгі нұсқаларында, арқылы Файл – Параметрлер – Қосымшалар – Өту – Шолу (Файл — Excel параметрлері — Қондырмалар — Өту — Шолу)

  • Макростар дегеніміз не, Visual Basic-те макрокодты қай жерге енгізу керек

 

пікір қалдыру