კოორდინაცია შერჩევა

თქვენ გაქვთ დიდი მონიტორი, მაგრამ მაგიდები, რომლებთანაც მუშაობთ, კიდევ უფრო დიდია. და, საჭირო ინფორმაციის მოსაძებნად ეკრანზე გადახედვისას, ყოველთვის არის შანსი, რომ თვალები „გააპაროთ“ შემდეგ ხაზზე და გაიხედოთ არასწორი მიმართულებით. მე კი ვიცნობ ადამიანებს, რომლებიც ასეთი შემთხვევებისთვის ყოველთვის ახლოს ატარებენ ხის სახაზავს, რომ მონიტორზე ხაზს მიამაგრონ. მომავლის ტექნოლოგიები! 

და თუ მიმდინარე მწკრივი და სვეტი მონიშნულია, როდესაც აქტიური უჯრედი მოძრაობს ფურცელზე? ერთგვარი კოორდინატთა შერჩევა, როგორიცაა:

მმართველზე უკეთესი, არა?

ამის განსახორციელებლად სხვადასხვა სირთულის რამდენიმე გზა არსებობს. თითოეულ მეთოდს აქვს თავისი დადებითი და უარყოფითი მხარეები. მოდით შევხედოთ მათ დეტალურად.

მეთოდი 1. ცხადია. მაკრო, რომელიც ხაზს უსვამს მიმდინარე მწკრივს და სვეტს

ჩვენი პრობლემის გადაჭრის ყველაზე აშკარა გზა "შუბლზე" - ჩვენ გვჭირდება მაკრო, რომელიც თვალყურს ადევნებს შერჩევის ცვლილებას ფურცელზე და შეარჩევს მთელ რიგს და სვეტს მიმდინარე უჯრედისთვის. ასევე სასურველია საჭიროების შემთხვევაში ამ ფუნქციის ჩართვა და გამორთვა ისე, რომ ასეთი ჯვრის ფორმის შერჩევა ხელს არ შეგვიშლის, მაგალითად, ფორმულებში შეყვანაში, მაგრამ მუშაობს მხოლოდ მაშინ, როცა სიას გადავხედავთ საჭიროების მოსაძებნად. ინფორმაცია. ეს მიგვიყვანს სამ მაკრომდე (აირჩიეთ, ჩართეთ და გამორთეთ), რომლებიც უნდა დაემატოს ფურცლის მოდულს.

გახსენით ფურცელი ცხრილით, რომელშიც გსურთ მიიღოთ ასეთი კოორდინატთა შერჩევა. დააწკაპუნეთ მარჯვენა ღილაკით ფურცლის ჩანართზე და აირჩიეთ ბრძანება კონტექსტური მენიუდან საწყისი ტექსტი (Საწყისი კოდი).უნდა გაიხსნას Visual Basic Editor ფანჯარა. დააკოპირეთ მასში ამ სამი მაკროს ეს ტექსტი:

Dim Coord_Selection როგორც ლოგიკური 'გლობალური ცვლადი შერჩევის ჩართვის/გამორთვის Sub Selection_On() 'მაკრო შერჩევისას Coord_Selection = True End Sub Selection_Off() 'მაკრო გამორთულია შერჩევა Coord_Selection = False End Sub'მთავარი პროცედურა, რომელიც ახორციელებს შერჩევას პირადი ქვე Worksheet_SelectionChange(ByVal დიაპაზონი) Dim WorkRange როგორც დიაპაზონი, თუ Target.Cells.Count > 1 შემდეგ გადით Sub 'თუ 1 უჯრედზე მეტია არჩეული, გადით თუ Coord_Selection = False შემდეგ გადით Sub 'თუ არჩევანი გამორთულია, გადით Application.ScreenUpdating = False Set WorkRange = Range ("A6:N300") 'სამუშაო დიაპაზონის მისამართი, რომლის ფარგლებშიც ჩანს არჩევანი  

შეცვალეთ სამუშაო დიაპაზონის მისამართი თქვენით - სწორედ ამ დიაპაზონში იმუშავებს ჩვენი არჩევანი. შემდეგ დახურეთ Visual Basic რედაქტორი და დაუბრუნდით Excel-ს.

დააჭირეთ კლავიატურის მალსახმობს ALT + F8ფანჯრის გასახსნელად ხელმისაწვდომი მაკროების სიით. მაკრო Selection_On, როგორც თქვენ ალბათ მიხვდით, მოიცავს კოორდინატთა შერჩევას მიმდინარე ფურცელზე და მაკრო Selection_Off - თიშავს. იმავე ფანჯარაში, ღილაკზე დაჭერით პარამეტრები (Პარამეტრები) თქვენ შეგიძლიათ კლავიატურის მალსახმობები მიანიჭოთ ამ მაკროებს მარტივი გაშვებისთვის.

ამ მეთოდის უპირატესობები:

  • განხორციელების შედარებით სიმარტივე
  • შერჩევა - ოპერაცია უვნებელია და არანაირად არ ცვლის ფურცლის უჯრედების შინაარსს ან ფორმატს, ყველაფერი რჩება ისე, როგორც არის

ამ მეთოდის უარყოფითი მხარეები:

  • ასეთი შერჩევა არ მუშაობს სწორად, თუ ფურცელზე არის გაერთიანებული უჯრედები - კავშირში შემავალი ყველა მწკრივი და სვეტი ერთდროულად შეირჩევა.
  • თუ შემთხვევით დააჭერთ ღილაკს Delete, მაშინ გასუფთავდება არა მხოლოდ აქტიური უჯრედი, არამედ მთელი შერჩეული ტერიტორია, ანუ წაიშლება მონაცემები მთელი რიგიდან და სვეტიდან.

მეთოდი 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 ფანჯარა. დააკოპირეთ ამ მარტივი მაკროს ეს ტექსტი მასში:

პირადი ქვე Worksheet_SelectionChange(ByVal Target As Range) ActiveCell.Calculate End Sub  

ახლა, როდესაც შერჩევა შეიცვლება, ფუნქციით ფორმულის ხელახალი გაანგარიშების პროცესი დაიწყება ცელსი პირობით ფორმატირებაში და დატბორეთ მიმდინარე სტრიქონი და სვეტი.

ამ მეთოდის უპირატესობები:

  • პირობითი ფორმატირება არ არღვევს ცხრილის მორგებულ ფორმატირებას
  • შერჩევის ეს ვარიანტი სწორად მუშაობს გაერთიანებულ უჯრედებთან.
  • შემთხვევითი დაწკაპუნებისას მონაცემების მთელი რიგისა და სვეტის წაშლის რისკი არ არსებობს წაშლა.
  • მაკრო მინიმალურად გამოიყენება

ამ მეთოდის უარყოფითი მხარეები:

  • პირობითი ფორმატირების ფორმულა ხელით უნდა შეიყვანოთ.
  • ასეთი ფორმატირების ჩართვის/გამორთვის სწრაფი გზა არ არსებობს – ის ყოველთვის ჩართულია სანამ წესი არ წაიშლება.

მეთოდი 3. ოპტიმალური. პირობითი ფორმატირება + მაკრო

ოქროს შუალედი. ჩვენ ვიყენებთ მექანიზმს ფურცელზე არჩევის თვალყურის დევნებისთვის მაკროების გამოყენებით მეთოდი-1 და ვამატებთ მას უსაფრთხო ხაზგასმას მეთოდი-2-დან პირობითი ფორმატირების გამოყენებით.

გახსენით ფურცელი ცხრილით, რომელშიც გსურთ მიიღოთ ასეთი კოორდინატთა შერჩევა. დააწკაპუნეთ მარჯვენა ღილაკით ფურცლის ჩანართზე და აირჩიეთ ბრძანება კონტექსტური მენიუდან საწყისი ტექსტი (Საწყისი კოდი).უნდა გაიხსნას Visual Basic Editor ფანჯარა. დააკოპირეთ მასში ამ სამი მაკროს ეს ტექსტი:

Dim Coord_Selection როგორც ლოგიკური Sub Selection_On() Coord_Selection = True End Sub Sub Selection_Off() Coord_Selection = False End Sub Private Sub Worksheet_SelectionChange(ByVal სამიზნე როგორც დიაპაზონი) Dim WorkRange როგორც დიაპაზონი, CrossRange როგორც დიაპაზონი:A"7" 'მისამართი рабочего диапазона с таблицей If Target.Count > 300 შემდეგ გადით Sub-დან, თუ Coord_Selection = False, მაშინ WorkRange.FormatConditions.Delete Exit Sub End If Application.ScreenUpdating = False If Not Intersect(Target, WorkRange) Intersect (მიზანი, სამუშაო დიაპაზონი) არ არის CrossRange = მაშინ სამუშაო დიაპაზონი, კავშირი (Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).ColorIndset.Format. .Delete End If End Sub  

არ დაგავიწყდეთ სამუშაო დიაპაზონის მისამართის შეცვლა თქვენი ცხრილის მისამართით. დახურეთ Visual Basic რედაქტორი და დაბრუნდით Excel-ში. დამატებული მაკროების გამოსაყენებლად დააჭირეთ კლავიატურის მალსახმობს ALT + F8  და გააგრძელეთ ისევე, როგორც მეთოდი 1. 

მეთოდი 4. ლამაზი. FollowCellPointer დანამატი

Excel MVP ნიდერლანდებიდან იან კარელ პიტერსე გთავაზობთ უფასო დანამატს თავის ვებსაიტზე FollowCellPointer(36Kb), რომელიც წყვეტს იგივე პრობლემას გრაფიკული ისრის ხაზების დახატვით მაკროების გამოყენებით მიმდინარე მწკრივისა და სვეტის ხაზგასასმელად:

 

სასიამოვნო გამოსავალი. არა ადგილებზე ხარვეზების გარეშე, მაგრამ ნამდვილად ღირს ცდა. ჩამოტვირთეთ არქივი, გახსენით ის დისკზე და დააინსტალირეთ დანამატი:

  • Excel 2003 და უფრო ძველი – მენიუს მეშვეობით სერვისი – დანამატები – მიმოხილვა (ინსტრუმენტები - დანამატები - დათვალიერება)
  • Excel 2007-ში და შემდეგ, მეშვეობით ფაილი – ოფციები – დანამატები – გადასვლა – დათვალიერება (ფაილი — Excel ოფციები — დანამატები — გადადით — დათვალიერება)

  • რა არის მაკროები, სად ჩავსვათ მაკრო კოდი Visual Basic-ში

 

დატოვე პასუხი