Kopiraj zbroj odabranih ćelija u međuspremnik

Ponekad je potrebno jako puno vremena da se do nekih stvari dođe. Ali kad su VEĆ izmišljeni, naknadno izgledaju očiti, pa čak i banalni. Iz serije “Što, bilo je moguće?”.

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

Kopiraj zbroj odabranih ćelija u međuspremnik

Po želji, bilo je moguće čak kliknuti desnom tipkom miša na ove rezultate i odabrati iz kontekstnog izbornika točno koje funkcije želimo vidjeti:

Kopiraj zbroj odabranih ćelija u međuspremnik

I upravo nedavno, u najnovijim ažuriranjima programa Excel, Microsoftovi programeri dodali su jednostavnu, ali genijalnu značajku – sada kada kliknete na te rezultate, oni se kopiraju u međuspremnik!

Kopiraj zbroj odabranih ćelija u međuspremnik

Ljepota. 

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

Kopiranje zbroja odabranih ćelija u međuspremnik pomoću makronaredbe

Otvori u kartici razvijač (Programer) urednik Visual Basic ili koristite ovaj prečac na tipkovnici drugo+F11. Umetnite novi prazan modul putem izbornika Umetak – Modul i tamo kopirajte sljedeći kod:

Sub SumSelected() If TypeName(Selection) <> "Range" Then Exit Sub With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection) .PutInClipboard End With End Sub  

Njegova logika je jednostavna:

  • Prvo dolazi "zaštita od budale" - provjeravamo što je točno istaknuto. Ako nisu odabrane ćelije (već, na primjer, grafikon), izađite iz makronaredbe.
  • Zatim pomoću naredbe Getobjekt stvaramo novi podatkovni objekt gdje će kasnije biti pohranjen naš zbroj odabranih ćelija. Dugi i nerazumljivi alfanumerički kod zapravo je poveznica na granu Windows registra u kojoj se nalazi knjižnica Biblioteka objekata Microsoft Forms 2.0, koji može stvoriti takve objekte. Ponekad se ovaj trik također zove implicitno kasno uvezivanje. Ako je ne koristite, tada biste morali napraviti vezu na ovu biblioteku u datoteci kroz izbornik Alati — Reference.
  • Zbroj odabranih ćelija smatra se naredbom Radni listFunkcija.Zbroj(odabir), a zatim se dobiveni iznos naredbom stavlja u međuspremnik Stavite u međuspremnik

Radi lakšeg korištenja ovu makronaredbu možete, naravno, dodijeliti tipkovničkom prečacu pomoću gumba makronaredbe kartica razvijač (Razvojni programer — Makronaredbe).

A ako želite vidjeti što je točno kopirano nakon pokretanja makronaredbe, možete uključiti ploču međuspremnika pomoću male strelice u donjem desnom kutu odgovarajuće grupe na Glavni (Dom) kartica:

Kopiraj zbroj odabranih ćelija u međuspremnik

Ne samo iznos

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

Kopiraj zbroj odabranih ćelija u međuspremnik

Na primjer, postoji:

  • Zbroj – zbroj
  • Prosjek – aritmetička sredina
  • Broj – broj ćelija s brojevima
  • CountA – broj popunjenih ćelija
  • CountBlank – broj praznih ćelija
  • Min – minimalna vrijednost
  • Max – maksimalna vrijednost
  • Medijan – medijan (središnja vrijednost)
  • ... itd.

Uključujući filtre i skrivene retke-stupce

Što ako su retci ili stupci skriveni (ručno ili filtrom) u odabranom rasponu? Kako ih ne bismo uzeli u obzir u ukupnim zbrojevima, morat ćemo malo modificirati naš kod dodavanjem objektu Izbor nekretnina Posebne ćelije (xlCellTypeVisible):

Sub SumVisible() If TypeName(Selection) <> "Range" Then Exit Sub With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection.SpecialCells(xlCellTypeVisible)) . PutInClipboard End With End Sub  

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

Ako trebate živuću formulu

Ako sanjate, možete smisliti scenarije kada je bolje kopirati ne broj (konstantu), već živu formulu u međuspremnik, koja 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 zamjenu zareza (koji se koristi kao razdjelnik između adresa nekoliko odabranih raspona u VBA) točkom i zarezom:

Sub SumFormula() If TypeName(Selection) <> "Range" Then Exit Sub With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText "=SUMM(" & Replace(Replace(Selection. Adresa, ",", ";"), "$", "") & ")" .PutInClipboard End With End Sub  

Zbrajanje uz dodatne uvjete

I, konačno, za potpuno manijake, možete napisati makronaredbu koja neće zbrajati sve odabrane ćelije, već samo one koje zadovoljavaju zadane uvjete. Tako će, na primjer, izgledati makronaredba koja stavlja zbroj odabranih ćelija u međuspremnik, ako su njihove vrijednosti veće od 5, a istovremeno su ispunjene bilo kojom bojom:

 Sub CustomCalc() Dim myRange As Range If TypeName(Selection) <> "Range" Then Exit Sub Za svaku ćeliju u odabiru If cell.Value > 5 And cell.Interior.ColorIndex <> xlNone Then If myRange Is Nothing Then Set myRange = cell Else Set myRange = Union(myRange, cell) End If End If Next cell With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(myRange) .PutInClipboard End With End Sub  

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

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

Ostavi odgovor