Բովանդակություն
Դուք ունեք մեծ մոնիտոր, բայց սեղանները, որոնց հետ աշխատում եք, ավելի մեծ են: Եվ, նայելով էկրանին անհրաժեշտ տեղեկատվությունը փնտրելու համար, միշտ հնարավորություն կա ձեր աչքերը «սայթաքել» դեպի հաջորդ գիծ և նայել սխալ ուղղությամբ: Ես նույնիսկ գիտեմ մարդկանց, ովքեր նման առիթների համար միշտ իրենց մոտ են պահում փայտե քանոն՝ այն մոնիտորի գծին ամրացնելու համար։ Ապագայի տեխնոլոգիաներ!
Իսկ եթե ընթացիկ տողը և սյունակը ընդգծված են, երբ ակտիվ բջիջը շարժվում է թերթի վրայով: Մի տեսակ կոորդինատային ընտրություն, ինչպիսին է սա.
Ավելի լավ, քան քանոն, չէ՞:
Սա իրականացնելու համար կան տարբեր բարդության մի քանի եղանակներ: Յուրաքանչյուր մեթոդ ունի իր դրական և բացասական կողմերը: Եկեք մանրամասն նայենք դրանց:
Մեթոդ 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-ի այս չափազանց օգտակար հատկությունը թույլ է տալիս ավտոմատ ձևաչափել բջիջները, եթե դրանք համապատասխանում են սահմանված պայմաններին: Եթե մենք միավորենք այս երկու գաղափարները մեկի մեջ, ապա մենք կստանանք հետևյալ ալգորիթմը՝ պայմանական ձևաչափման միջոցով մեր կոորդինատների ընտրությունն իրականացնելու համար.
- Մենք ընտրում ենք մեր աղյուսակը, այսինքն՝ այն բջիջները, որոնցում հետագայում պետք է ցուցադրվի կոորդինատների ընտրությունը։
- Excel 2003 և ավելի հին տարբերակներում բացեք ընտրացանկը Ձևաչափ – Պայմանական ձևաչափում – Բանաձև (Ձևաչափ — Պայմանական ձևաչափում — Բանաձև). Excel 2007-ում և ավելի նոր տարբերակում՝ սեղմեք ներդիրին Գլխավոր (Տուն)կոճակ Պայմանական ձևաչափում – Ստեղծել կանոն (Պայմանական ձևաչափում — Ստեղծել կանոն) և ընտրեք կանոնի տեսակը Օգտագործեք բանաձև `որոշելու համար, թե որ բջիջները ձևափոխել (Օգտագործեք բանաձև)
- Մուտքագրեք մեր կոորդինատների ընտրության բանաձևը.
=OR(CELL(«տող»)=ROW(A2),CELL(«սյունակ»)=COLUMN(A2))
=OR(CELL(«տող»)=ROW(A1),CELL(«սյունակ»)=COLUMN(A1))
Այս բանաձևը ստուգում է, թե արդյոք աղյուսակի յուրաքանչյուր բջիջի սյունակի համարը նույնն է ընթացիկ բջիջի սյունակի համարին: Նմանապես սյուների դեպքում: Այսպիսով, կլրացվեն միայն այն բջիջները, որոնք ունեն կամ սյունակի համար կամ տողի համար, որը համապատասխանում է ընթացիկ բջիջին: Եվ սա խաչաձեւ կոորդինատների ընտրությունն է, որին մենք ցանկանում ենք հասնել:
- Կտտացրեք կոճակը Շրջանակ (Ձևաչափ) և սահմանեք լրացման գույնը:
Ամեն ինչ գրեթե պատրաստ է, բայց կա մեկ նրբերանգ. Փաստն այն է, որ 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-ում