არჩეული უჯრედების ჯამის კოპირება ბუფერში

ზოგჯერ ძალიან დიდი დრო სჭირდება რაღაცეების გამომუშავებას. მაგრამ როდესაც ისინი უკვე გამოიგონეს, ამის შემდეგ ისინი აშკარად და ბანალურადაც კი გამოიყურებიან. სერიიდან "რა, შესაძლებელი იყო?".

პირველივე ვერსიებიდან, Microsoft Excel-ის ფანჯრის ბოლოში არსებული სტატუსის ზოლი ტრადიციულად აჩვენებს ჯამებს შერჩეული უჯრედებისთვის:

არჩეული უჯრედების ჯამის კოპირება ბუფერში

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

არჩეული უჯრედების ჯამის კოპირება ბუფერში

ახლახან, Excel-ის უახლეს განახლებებში, Microsoft-ის დეველოპერებმა დაამატეს მარტივი, მაგრამ გენიალური ფუნქცია - ახლა, როდესაც ამ შედეგებს დააწკაპუნებთ, ისინი კოპირდება ბუფერში!

არჩეული უჯრედების ჯამის კოპირება ბუფერში

სილამაზის. 

მაგრამ რაც შეეხება მათ, ვისაც ჯერ არ აქვს (ან უკვე?) Excel-ის ასეთი ვერსია? ეს არის ის, სადაც მარტივი მაკრო დაგეხმარებათ.

არჩეული უჯრედების ჯამის კოპირება ბუფერში მაკროს გამოყენებით

გახსენით ჩანართში დეველოპერი (დეველოპერი) რედაქტორი Visual Basic ან გამოიყენეთ ეს კლავიატურის მალსახმობი Alt+F11. ჩადეთ ახალი ცარიელი მოდული მენიუს მეშვეობით ჩასმა – მოდული და დააკოპირეთ შემდეგი კოდი იქ:

Sub SumSelected() If TypeName(Selection) <> "Range" შემდეგ გამოდით Sub-ით GetObject("ახალი:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Endboard(PutInC) End.  

მისი ლოგიკა მარტივია:

  • ჯერ მოდის "დაცვა სულელისგან" - ჩვენ ვამოწმებთ რა არის ხაზგასმული. თუ არ არის არჩეული უჯრედები (მაგრამ, მაგალითად, დიაგრამა), მაშინ გამოდით მაკროდან.
  • შემდეგ ბრძანების გამოყენებით მიიღეთ ობიექტი ჩვენ ვქმნით ახალ მონაცემთა ობიექტს, სადაც ჩვენი შერჩეული უჯრედების ჯამი მოგვიანებით შეინახება. გრძელი და გაუგებარი ალფაციფრული კოდი, ფაქტობრივად, არის ბმული Windows რეესტრის ფილიალთან, სადაც მდებარეობს ბიბლიოთეკა. Microsoft Forms 2.0 Object Library, რომელსაც შეუძლია შექმნას ასეთი ობიექტები. ზოგჯერ ამ ხრიკსაც უწოდებენ ნაგულისხმევი გვიანი შეკვრა. თუ არ იყენებთ მას, მაშინ თქვენ მოგიწევთ ამ ბიბლიოთეკის ბმული ფაილში მენიუს მეშვეობით ინსტრუმენტები - ცნობები.
  • არჩეული უჯრედების ჯამი ითვლება ბრძანებად WorksheetFunction.Sum(Selection), და შემდეგ მიღებული თანხა მოთავსებულია ბუფერზე ბრძანებით PutInClipboard

მოხერხებულობისთვის, რა თქმა უნდა, შეგიძლიათ, ღილაკის გამოყენებით ამ მაკრო მივანიჭოთ კლავიატურის მალსახმობებს Macros tab დეველოპერი (დეველოპერი - მაკრო).

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

არჩეული უჯრედების ჯამის კოპირება ბუფერში

არა მარტო თანხა

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

არჩეული უჯრედების ჯამის კოპირება ბუფერში

მაგალითად, არსებობს:

  • ჯამი – ჯამი
  • საშუალო - საშუალო არითმეტიკული
  • დათვლა - უჯრედების რაოდენობა რიცხვებით
  • CountA - შევსებული უჯრედების რაოდენობა
  • CountBlank - ცარიელი უჯრედების რაოდენობა
  • Min - მინიმალური მნიშვნელობა
  • მაქს - მაქსიმალური მნიშვნელობა
  • მედიანა - მედიანა (ცენტრალური მნიშვნელობა)
  • … და ა.შ.

მათ შორის ფილტრები და ფარული მწკრივი-სვეტები

რა მოხდება, თუ რიგები ან სვეტები დამალულია (ხელით ან ფილტრით) არჩეულ დიაპაზონში? იმისათვის, რომ ისინი არ გავითვალისწინოთ ჯამებში, დაგვჭირდება ოდნავ შეცვალოთ ჩვენი კოდი ობიექტზე დამატებით. შერჩევა ქონება SpecialCells (xlCellTypeVisible):

Sub SumVisible() If TypeName(Selection) <> "Range" შემდეგ გამოდით Sub-თან ერთად GetObject("ახალი:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(SellSelection)SpecialTellspeial. PutInClipboard დასასრული End Sub  

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

თუ თქვენ გჭირდებათ ცოცხალი ფორმულა

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

Sub SumFormula() If TypeName(Selection) <> "Range" შემდეგ გამოდით Sub-ით GetObject("ახალი:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText "=СУМ(" & Replace.(Selection. მისამართი, ","", ";"), "$", "") & ")" .PutInClipboard დასრულება End Sub  

შეჯამება დამატებითი პირობებით

და ბოლოს, სრულიად მანიაკებისთვის, შეგიძლიათ დაწეროთ მაკრო, რომელიც შეაჯამებს არა ყველა შერჩეულ უჯრედს, არამედ მხოლოდ მათ, ვინც აკმაყოფილებს მოცემულ პირობებს. მაგალითად, მაკრო ასე გამოიყურება, რომელიც აყენებს არჩეული უჯრედების ჯამს ბუფერში, თუ მათი მნიშვნელობები 5-ზე მეტია და ამავე დროს ისინი ივსება ნებისმიერი ფერით:

 Sub CustomCalc() Dim myRange როგორც დიაპაზონი If TypeName(Selection) <> "Range" შემდეგ გამოდით Sub თითოეული უჯრედისთვის Selection If cell.Value > 5 და cell.Interior.ColorIndex <> xlNone მაშინ თუ myRange არის არაფერი, მაშინ დააყენეთ myRange = cell Else Set myRange = Union(myRange, cell) End If End If შემდეგი უჯრედი GetObject-ით ("ახალი:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(myPutInC)  

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

  • ფორმულების გადაქცევა მნიშვნელობებად (6 გზა)
  • რა არის მაკროები, როგორ გამოვიყენოთ ისინი, სად ჩავსვათ Visual Basic კოდი
  • სასარგებლო ინფორმაცია Microsoft Excel-ის სტატუსის ზოლში

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