Կոորդինատների ընտրություն

Դուք ունեք մեծ մոնիտոր, բայց սեղանները, որոնց հետ աշխատում եք, ավելի մեծ են: Եվ, նայելով էկրանին անհրաժեշտ տեղեկատվությունը փնտրելու համար, միշտ հնարավորություն կա ձեր աչքերը «սայթաքել» դեպի հաջորդ գիծ և նայել սխալ ուղղությամբ: Ես նույնիսկ գիտեմ մարդկանց, ովքեր նման առիթների համար միշտ իրենց մոտ են պահում փայտե քանոն՝ այն մոնիտորի գծին ամրացնելու համար։ Ապագայի տեխնոլոգիաներ! 

Իսկ եթե ընթացիկ տողը և սյունակը ընդգծված են, երբ ակտիվ բջիջը շարժվում է թերթի վրայով: Մի տեսակ կոորդինատային ընտրություն, ինչպիսին է սա.

Ավելի լավ, քան քանոն, չէ՞:

Սա իրականացնելու համար կան տարբեր բարդության մի քանի եղանակներ: Յուրաքանչյուր մեթոդ ունի իր դրական և բացասական կողմերը: Եկեք մանրամասն նայենք դրանց:

Մեթոդ 1. Ակնհայտ է. Մակրո, որն ընդգծում է ընթացիկ տողը և սյունակը

Մեր խնդիրը «ճակատի վրա» լուծելու ամենաակնառու միջոցը մեզ անհրաժեշտ է մակրո, որը կհետևի թերթիկի ընտրության փոփոխությանը և կընտրի ամբողջ տողը և սյունակը ընթացիկ բջիջի համար: Ցանկալի է նաև, որ անհրաժեշտության դեպքում կարողանանք միացնել և անջատել այս գործառույթը, որպեսզի նման խաչաձև ընտրությունը չխանգարի մեզ մուտքագրել, օրինակ, բանաձևեր, այլ գործի միայն այն ժամանակ, երբ մենք նայենք ցուցակը` փնտրելով անհրաժեշտը: տեղեկատվություն։ Սա մեզ բերում է երեք մակրոների (ընտրել, միացնել և անջատել), որոնք պետք է ավելացվեն թերթի մոդուլին:

Բացեք աղյուսակով թերթիկ, որում ցանկանում եք ստանալ նման կոորդինատային ընտրություն: Աջ սեղմեք թերթիկի ներդիրի վրա և ընտրեք հրամանը համատեքստի ընտրացանկից Աղբյուրի տեքստը (Աղբյուր կոդը):Visual Basic Editor-ի պատուհանը պետք է բացվի: Պատճենեք այս երեք մակրոների այս տեքստը դրա մեջ.

Dim Coord_Selection As Boolean 'Գլոբալ փոփոխական ընտրության միացման/անջատման համար Sub Selection_On() 'Մակրո ընտրության վրա Coord_Selection = True End Sub Selection_Off() 'Մակրո անջատված ընտրություն Coord_Selection = False End Sub 'Հիմնական ընթացակարգ, որն իրականացնում է ընտրությունը Մասնավոր ենթաթերթ_SelectionChange(ByVal) Range) Dim WorkRange As Range If Target.Cells.Count > 1 Ապա Դուրս եկեք Sub 'եթե ընտրված է 1-ից ավելի բջիջ, դուրս եկեք Եթե Coord_Selection = False Ապա Ելք Sub 'եթե ընտրությունն անջատված է, դուրս եկեք Application.ScreenUpdating = False Set WorkRange = Range («A6:N300») «աշխատանքային միջակայքի հասցեն, որի ներսում տեսանելի է ընտրությունը  

Փոխեք աշխատանքային տիրույթի հասցեն ձեր հասցեին՝ հենց այս տիրույթում է, որ մեր ընտրությունը կաշխատի: Այնուհետև փակեք Visual Basic խմբագրիչը և վերադարձեք Excel:

Սեղմեք ստեղնաշարի դյուրանցումը ALT + F8հասանելի մակրոների ցանկով պատուհան բացելու համար: Մակրո Ընտրություն_Միացված, ինչպես կարող եք կռահել, ներառում է կոորդինատների ընտրություն ընթացիկ թերթում և մակրո Ընտրություն_Անջատված - անջատում է: Նույն պատուհանում, սեղմելով կոճակը Պարամետրեր (Ընտրանքներ) Դուք կարող եք ստեղնաշարի դյուրանցումներ նշանակել այս մակրոներին՝ հեշտ գործարկելու համար:

Այս մեթոդի առավելությունները.

  • իրականացման հարաբերական հեշտությունը
  • ընտրություն - գործողությունը անվնաս է և որևէ կերպ չի փոխում թերթիկի բջիջների բովանդակությունը կամ ձևաչափումը, ամեն ինչ մնում է այնպես, ինչպես կա

Այս մեթոդի թերությունները.

  • նման ընտրությունը ճիշտ չի աշխատում, եթե թերթում կան միաձուլված բջիջներ. միավորման մեջ ներառված բոլոր տողերն ու սյունակները ընտրվում են միանգամից:
  • եթե պատահաբար սեղմեք Ջնջել ստեղնը, ապա ոչ միայն ակտիվ բջիջը կջնջվի, այլ ամբողջ ընտրված տարածքը, այսինքն՝ ջնջեք տվյալները ամբողջ տողից և սյունակից։

Մեթոդ 2. Բնօրինակ. CELL + Պայմանական ձևաչափման գործառույթ

Այս մեթոդը, թեև ունի մի քանի թերություններ, ինձ թվում է շատ էլեգանտ։ Միայն ներկառուցված Excel գործիքների միջոցով ինչ-որ բան իրականացնելու համար VBA-ում ծրագրավորման մեջ մտնելը նվազագույնը աերոբատիկա է 😉

Մեթոդը հիմնված է CELL ֆունկցիայի օգտագործման վրա, որը կարող է շատ տարբեր տեղեկություններ տալ տվյալ բջիջի վերաբերյալ՝ բարձրություն, լայնություն, տող-սյունակ համար, թվի ձևաչափ և այլն: Այս ֆունկցիան ունի երկու արգումենտ.

  • պարամետրի կոդային բառ, օրինակ՝ «սյունակ» կամ «տող»
  • այն բջջի հասցեն, որի համար մենք ցանկանում ենք որոշել այս պարամետրի արժեքը

Խաբեությունն այն է, որ երկրորդ փաստարկը կամընտիր է: Եթե ​​այն նշված չէ, ապա վերցվում է ընթացիկ ակտիվ բջիջը:

Այս մեթոդի երկրորդ բաղադրիչը պայմանական ձևաչափումն է: Excel-ի այս չափազանց օգտակար հատկությունը թույլ է տալիս ավտոմատ ձևաչափել բջիջները, եթե դրանք համապատասխանում են սահմանված պայմաններին: Եթե ​​մենք միավորենք այս երկու գաղափարները մեկի մեջ, ապա մենք կստանանք հետևյալ ալգորիթմը՝ պայմանական ձևաչափման միջոցով մեր կոորդինատների ընտրությունն իրականացնելու համար.

  1. Մենք ընտրում ենք մեր աղյուսակը, այսինքն՝ այն բջիջները, որոնցում հետագայում պետք է ցուցադրվի կոորդինատների ընտրությունը։
  2. Excel 2003 և ավելի հին տարբերակներում բացեք ընտրացանկը Ձևաչափ – Պայմանական ձևաչափում – Բանաձև (Ձևաչափ — Պայմանական ձևաչափում — Բանաձև). Excel 2007-ում և ավելի նոր տարբերակում՝ սեղմեք ներդիրին Գլխավոր (Տուն)կոճակ Պայմանական ձևաչափում – Ստեղծել կանոն (Պայմանական ձևաչափում — Ստեղծել կանոն) և ընտրեք կանոնի տեսակը Օգտագործեք բանաձև `որոշելու համար, թե որ բջիջները ձևափոխել (Օգտագործեք բանաձև)
  3. Մուտքագրեք մեր կոորդինատների ընտրության բանաձևը.

    =OR(CELL(«տող»)=ROW(A2),CELL(«սյունակ»)=COLUMN(A2))

    =OR(CELL(«տող»)=ROW(A1),CELL(«սյունակ»)=COLUMN(A1))

    Այս բանաձևը ստուգում է, թե արդյոք աղյուսակի յուրաքանչյուր բջիջի սյունակի համարը նույնն է ընթացիկ բջիջի սյունակի համարին: Նմանապես սյուների դեպքում: Այսպիսով, կլրացվեն միայն այն բջիջները, որոնք ունեն կամ սյունակի համար կամ տողի համար, որը համապատասխանում է ընթացիկ բջիջին: Եվ սա խաչաձեւ կոորդինատների ընտրությունն է, որին մենք ցանկանում ենք հասնել:

  4. Կտտացրեք կոճակը Շրջանակ (Ձևաչափ) և սահմանեք լրացման գույնը:

Ամեն ինչ գրեթե պատրաստ է, բայց կա մեկ նրբերանգ. Փաստն այն է, որ Excel-ը ընտրության փոփոխությունը չի համարում թերթի տվյալների փոփոխություն: Եվ, արդյունքում, այն չի առաջացնում բանաձևերի վերահաշվարկ և պայմանական ձևաչափի վերագունավորում միայն այն դեպքում, երբ փոխվում է ակտիվ բջիջի դիրքը: Հետևաբար, թերթիկի մոդուլին ավելացնենք պարզ մակրո, որը դա կանի: Աջ սեղմեք թերթիկի ներդիրի վրա և ընտրեք հրամանը համատեքստի ընտրացանկից Աղբյուրի տեքստը (Աղբյուր կոդը):Visual Basic Editor-ի պատուհանը պետք է բացվի: Պատճենեք այս պարզ մակրոյի այս տեքստը դրա մեջ.

Մասնավոր ենթաօրենսդրական աշխատաթերթ_SelectionChange(ByVal Target As Range) ActiveCell.Calculate End Sub  

Այժմ, երբ ընտրությունը փոխվի, գործարկվելու է ֆունկցիայի հետ բանաձևի վերահաշվարկի գործընթացը CELL պայմանական ձևաչափով և հեղեղել ընթացիկ տողն ու սյունակը:

Այս մեթոդի առավելությունները.

  • Պայմանական ձևաչափումը չի խախտում սովորական աղյուսակի ձևաչափումը
  • Ընտրության այս տարբերակը ճիշտ է աշխատում միավորված բջիջների հետ:
  • Պատահական սեղմումով տվյալների մի ամբողջ տող և սյունակ ջնջելու վտանգ չկա ջնջել.
  • Մակրոները նվազագույն են օգտագործվում

Այս մեթոդի թերությունները.

  • Պայմանական ձևաչափման բանաձևը պետք է մուտքագրվի ձեռքով:
  • Նման ձևաչափումը միացնելու/անջատելու արագ միջոց չկա. այն միշտ միացված է մինչև կանոնը ջնջվի:

Մեթոդ 3. Օպտիմալ. Պայմանական ֆորմատավորում + մակրո

Ոսկե միջին. Մենք օգտագործում ենք թերթիկի ընտրությանը հետևելու մեխանիզմը, օգտագործելով մակրոները մեթոդ-1-ից և դրան ավելացնում ենք անվտանգ ընդգծում՝ օգտագործելով մեթոդ-2-ի պայմանական ձևաչափումը:

Բացեք աղյուսակով թերթիկ, որում ցանկանում եք ստանալ նման կոորդինատային ընտրություն: Աջ սեղմեք թերթիկի ներդիրի վրա և ընտրեք հրամանը համատեքստի ընտրացանկից Աղբյուրի տեքստը (Աղբյուր կոդը):Visual Basic Editor-ի պատուհանը պետք է բացվի: Պատճենեք այս երեք մակրոների այս տեքստը դրա մեջ.

Dim Coord_Selection As Boolean Sub Selection_On() Coord_Selection = True End Sub Selection_Off() Coord_Selection = False End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range, CrossRange As Range SetRange:A"7" «հասցե рабочего диапазона с таблицей If Target.Count > 300 Ապա Դուրս եկեք Sub If Coord_Selection = False, ապա WorkRange.FormatConditions.Delete Exit Sub End If Application.ScreenUpdating = False If Not Intersect(Target, WorkRange) Intersect (Target, WorkRange) Intersect=Snothing WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).ColorIndset.For: .Delete End If End Sub  

Մի մոռացեք փոխել աշխատանքային տիրույթի հասցեն ձեր աղյուսակի հասցեին: Փակեք Visual Basic խմբագրիչը և վերադարձեք Excel: Ավելացված մակրոներն օգտագործելու համար սեղմեք ստեղնաշարի դյուրանցումը ALT + F8  և շարունակեք նույն կերպ, ինչպես 1-ին մեթոդը: 

Մեթոդ 4. Գեղեցիկ. FollowCellPointer հավելում

Excel-ի MVP Նիդեռլանդներից Յան Կարել Պիտերսեն անվճար հավելում է տալիս իր կայքում Հետևեք CellPointer-ին(36 Կբ), որը լուծում է նույն խնդիրը՝ գծելով գրաֆիկական սլաք գծեր՝ օգտագործելով մակրոները՝ ընթացիկ տողը և սյունակը ընդգծելու համար.

 

Հաճելի լուծում. Ոչ առանց տեղ-տեղ թերությունների, բայց անպայման արժե փորձել: Ներբեռնեք արխիվը, հանեք այն սկավառակի վրա և տեղադրեք հավելումը.

  • Excel 2003 և ավելի հին տարբերակներում՝ ցանկի միջոցով Ծառայություն – Հավելումներ – Ընդհանուր ակնարկ (Գործիքներ — Հավելումներ — Թերթել)
  • Excel 2007-ում և ավելի ուշ, միջոցով Ֆայլ – Ընտրանքներ – Հավելումներ – Գնալ – Թերթել (Ֆայլ — Excel Ընտրանքներ — Հավելումներ — Գնալ — Թերթել)

  • Ինչ են մակրոները, որտեղ տեղադրել մակրո կոդը Visual Basic-ում

 

Թողնել գրառում