Kopirajte zbir odabranih ćelija u međuspremnik

Ponekad je potrebno mnogo vremena da se smisle neke stvari. Ali kada su VEĆ izmišljeni, nakon činjenice izgledaju očigledno, pa čak i banalno. Iz serije “šta je bilo moguće?”.

Od prvih verzija, statusna traka na dnu prozora Microsoft Excela tradicionalno je prikazivala ukupne vrijednosti za odabrane ćelije:

Kopirajte zbir odabranih ćelija u međuspremnik

Po želji, bilo je čak moguće kliknuti desnim tasterom miša na ove rezultate i izabrati iz kontekstnog menija tačno koje funkcije želimo da vidimo:

Kopirajte zbir odabranih ćelija u međuspremnik

A tek nedavno, u najnovijim ažuriranjima programa Excel, Microsoft programeri su dodali jednostavnu, ali genijalnu funkciju – sada kada kliknete na ove rezultate, oni se kopiraju u međuspremnik!

Kopirajte zbir odabranih ćelija u međuspremnik

Ljepota. 

Ali što je s onima koji još (ili već?) nemaju takvu verziju Excela? Ovdje jednostavni makroi mogu pomoći.

Kopiranje zbira odabranih ćelija u međuspremnik pomoću makroa

Otvori u kartici Developer (programer) urednik Visual Basic ili koristite ovu prečicu na tastaturi alt+F11. Ubacite novi prazan modul preko menija Umetak – Modul i tamo kopirajte sljedeći kod:

Sub SumSelected() Ako TypeName(Selection) <> "Range" then Exit Sub with GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Sum (Izbor) EndClipboard .Put.  

Njegova logika je jednostavna:

  • Prvo dolazi „zaštita od budale“ – proveravamo šta je tačno istaknuto. Ako nisu odabrane ćelije (već, na primjer, grafikon), izađite iz makronaredbe.
  • Zatim pomoću naredbe Getobject kreiramo novi objekt podataka gdje će naš zbir odabranih ćelija biti pohranjen kasnije. Dugačak i nerazumljiv alfanumerički kod je, u stvari, veza do grane Windows registra u kojoj se nalazi biblioteka Biblioteka objekata Microsoft Forms 2.0, koji može kreirati takve objekte. Ponekad se i ovaj trik naziva implicitno kasno uvezivanje. Ako ga ne koristite, onda biste morali da napravite vezu do ove biblioteke u datoteci kroz meni Alati — Reference.
  • Zbir odabranih ćelija smatra se komandom WorksheetFunction.Sum(Izbor), a zatim se dobijeni iznos naredbom stavlja u međuspremnik PutInClipboard

Radi lakšeg korišćenja, možete, naravno, dodeliti ovaj makro prečici na tastaturi pomoću dugmeta Macros tabulator Developer (Programer — Makroi).

A ako želite da vidite šta je tačno kopirano nakon pokretanja makroa, možete uključiti panel međuspremnika pomoću male strelice u donjem desnom uglu odgovarajuće grupe na Glavni (Dom) kartica:

Kopirajte zbir odabranih ćelija u međuspremnik

Ne samo iznos

Ako, pored banalnog iznosa, želite još nešto, onda možete koristiti bilo koju od funkcija koje nam objekt pruža Funkcija radnog lista:

Kopirajte zbir odabranih ćelija u međuspremnik

Na primjer, postoji:

  • Zbir – zbir
  • Prosjek – aritmetička sredina
  • Count – broj ćelija sa brojevima
  • CountA – broj popunjenih ćelija
  • CountBlank – broj praznih ćelija
  • Min – minimalna vrijednost
  • Max – maksimalna vrijednost
  • Medijan – medijan (centralna vrijednost)
  • … Itd.

Uključujući filtere i skrivene redove-kolone

Što ako su redovi ili stupci skriveni (ručno ili pomoću filtera) u odabranom rasponu? Kako ih ne bismo uzeli u obzir u zbrojevima, morat ćemo malo izmijeniti naš kod dodavanjem u objekt izbor imovina Specijalne ćelije(xlCellTypeVisible):

Sub SumVisible() Ako TypeName(Izbor) <> "Range" zatim izađite iz Sub sa GetObject("Novo:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection.SpecialViCell) PutInClipboard End With End Sub  

U ovom slučaju, izračunavanje bilo koje ukupne funkcije će se primijeniti samo na vidljive ćelije.

Ako vam je potrebna živa formula

Ako maštate, možete smisliti scenarije kada je bolje kopirati ne broj (konstantu), već živu formulu u međuspremnik, koji izračunava zbrojeve koji su nam potrebni za odabrane ćelije. U ovom slučaju, morat ćete zalijepiti formulu iz fragmenata, dodajući joj uklanjanje znakova dolara i zamjenjujući zarez (koji se koristi kao razdjelnik između adresa nekoliko odabranih raspona u VBA) tačkom i zarezom:

Sub SumFormula() Ako TipName(Izbor) <> "Raspon" Zatim izađite iz Sub sa GetObject("Novo:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText "=SUMM(" & Zamijeni(Izbor. Adresa, ",", ";"), "$", "") & ")" .PutInClipboard End With End Sub  

Sumiranje sa dodatnim uslovima

I, konačno, za potpuno manijake, možete napisati makro koji će sumirati ne sve odabrane ćelije, već samo one koje zadovoljavaju date uvjete. Tako će, na primjer, makronaredba izgledati tako da zbir odabranih ćelija stavlja u međuspremnik, ako su njihove vrijednosti veće od 5 i istovremeno su ispunjene bilo kojom bojom:

 Sub CustomCalc() Dim myRange As Range If TypeName(Selection) <> "Range" Zatim izađite iz Sub za svaku ćeliju u odabiru Ako cell.Value > 5 i cell.Interior.ColorIndex <> xlNone Onda ako je mojRange ništa onda postavite myRange = cell Else Postavite myRange = Union(myRange, cell) End If End If Sljedeća ćelija sa GetObject("Novo:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(myRange) End With End.PutIn  

Kao što možete lako zamisliti, uvjeti se mogu postaviti apsolutno bilo koji – do formata ćelija – i u bilo kojoj količini (uključujući njihovo povezivanje zajedno s logičkim operatorima ili ili i). Ima puno prostora za maštu.

  • Pretvorite formule u vrijednosti (6 načina)
  • Šta su makroi, kako ih koristiti, gdje umetnuti Visual Basic kod
  • Korisne informacije u statusnoj traci programa Microsoft Excel

Ostavite odgovor