Kopjo shumën e qelizave të zgjedhura në Clipboard

Ndonjëherë duhet një kohë shumë e gjatë për të dalë me disa gjëra. Por kur ato tashmë janë shpikur, në fakt duken të dukshme dhe madje banale. Nga seriali "çfarë, ishte e mundur?".

Që në versionet e para, shiriti i statusit në fund të dritares së Microsoft Excel shfaqte tradicionalisht totalet për qelizat e zgjedhura:

Kopjo shumën e qelizave të zgjedhura në Clipboard

Nëse dëshironi, madje ishte e mundur të klikoni me të djathtën mbi këto rezultate dhe të zgjidhni nga menyja e kontekstit saktësisht se cilat funksione duam të shohim:

Kopjo shumën e qelizave të zgjedhura në Clipboard

Dhe vetëm kohët e fundit, në përditësimet më të fundit të Excel, zhvilluesit e Microsoft shtuan një veçori të thjeshtë por të zgjuar – tani kur klikoni mbi këto rezultate, ato kopjohen në kujtesën e fragmenteve!

Kopjo shumën e qelizave të zgjedhura në Clipboard

Beauty. 

Por çfarë ndodh me ata që nuk e kanë ende (ose tashmë?) një version të tillë të Excel? Këtu mund të ndihmojnë makro të thjeshta.

Kopjimi i shumës së qelizave të zgjedhura në Clipboard duke përdorur një makro

Hapni në skedën zhvillues (Zhvilluesi) redaktor Visual Basic ose përdorni këtë shkurtore të tastierës Ndalet+F11. Fut modulin e ri bosh nëpërmjet menysë Insert – Moduli dhe kopjoni kodin e mëposhtëm atje:

Sub SumSelected() If TypeName(Selection) <> "Range" Pastaj dilni nga Sub me GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(PoutInC) Fund.  

Logjika e saj është e thjeshtë:

  • Së pari vjen "mbrojtja nga budallai" - ne kontrollojmë se çfarë theksohet saktësisht. Nëse nuk janë zgjedhur qelizat (por, për shembull, një tabelë), atëherë dilni nga makro.
  • Pastaj duke përdorur komandën Getobjekt ne krijojmë një objekt të ri të të dhënave ku shuma jonë e qelizave të zgjedhura do të ruhet më vonë. Një kod alfanumerik i gjatë dhe i pakuptueshëm është, në fakt, një lidhje me degën e regjistrit të Windows ku ndodhet biblioteka. Microsoft Forms 2.0 Object Library, të cilat mund të krijojnë objekte të tilla. Ndonjëherë ky truk quhet edhe lidhja e nënkuptuar e vonë. Nëse nuk e përdorni, atëherë do t'ju duhet të krijoni një lidhje me këtë bibliotekë në skedar përmes menysë Mjetet - Referencat.
  • Shuma e qelizave të zgjedhura konsiderohet një komandë Fletë puneFunction.Sum(Zgjedhja), dhe më pas shuma që rezulton vendoset në clipboard me komandën PutInClipboard

Për lehtësinë e përdorimit, sigurisht që mund ta caktoni këtë makro në një shkurtore të tastierës duke përdorur butonin macros tab zhvillues (Zhvilluesi - Makro).

Dhe nëse doni të shihni se çfarë saktësisht është kopjuar pas ekzekutimit të makros, mund të aktivizoni panelin Clipboard duke përdorur shigjetën e vogël në këndin e poshtëm djathtas të grupit përkatës në Kryesor (Shtëpi) tab:

Kopjo shumën e qelizave të zgjedhura në Clipboard

Jo vetëm sasia

Nëse, përveç shumës banale, dëshironi diçka tjetër, atëherë mund të përdorni ndonjë nga funksionet që na ofron objekti Funksioni i fletës së punës:

Kopjo shumën e qelizave të zgjedhura në Clipboard

Për shembull, ekziston:

  • Shuma – shuma
  • Mesatarja - mesatarja aritmetike
  • Numërimi - numri i qelizave me numra
  • CountA – numri i qelizave të mbushura
  • CountBlank – numri i qelizave boshe
  • Min - vlera minimale
  • Max - vlera maksimale
  • Mediana - mesatare (vlera qendrore)
  • … Etj

Duke përfshirë filtrat dhe kolonat e fshehura të rreshtave

Po sikur rreshtat ose kolonat të fshihen (me dorë ose nga një filtër) në intervalin e zgjedhur? Për të mos i marrë parasysh ato në total, do të duhet të modifikojmë pak kodin tonë duke shtuar në objekt Përzgjedhje pronë SpecialCells (xlCellTypeVisible):

Sub SumVisible() If TypeName(Selection) <> "Range" Më pas dilni nga Sub me GetObject("E re:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(SelellSelection)(Sellellspeialyx). PutInClipboard Fund Me End Sub  

Në këtë rast, llogaritja e çdo funksioni total do të zbatohet vetëm për qelizat e dukshme.

Nëse keni nevojë për një formulë të gjallë

Nëse ëndërroni, mund të dilni me skenarë kur është më mirë të kopjoni jo një numër (konstant), por një formulë të gjallë në tampon, i cili llogarit totalet që na duhen për qelizat e zgjedhura. Në këtë rast, do të duhet të ngjitni formulën nga fragmente, duke i shtuar asaj heqjen e shenjave të dollarit dhe duke zëvendësuar presjen (e cila përdoret si ndarës midis adresave të disa diapazoneve të zgjedhura në VBA) me një pikëpresje:

Sub SumFormula() If TypeName(Selection) <> "Range" Pastaj dilni nga Sub me GetObject("I ri:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText "=СУМ(" & Replace.(Selection.Replace. Adresa, ",", ";"), "$", "") & ")" .PutInClipboard Fund Me End Sub  

Përmbledhje me kushte shtesë

Dhe, së fundi, për plotësisht maniakët, mund të shkruani një makro që do të përmbledhë jo të gjitha qelizat e zgjedhura, por vetëm ato që plotësojnë kushtet e dhëna. Kështu, për shembull, një makro do të duket kështu që vendos shumën e qelizave të zgjedhura në Buffer, nëse vlerat e tyre janë më të mëdha se 5 dhe në të njëjtën kohë ato janë të mbushura me çdo ngjyrë:

 Sub CustomCalc() Dim myRange As Range If TypeName(Selection) <> "Range" Më pas Dilni Sub për çdo qelizë në përzgjedhje If cell.Value > 5 Dhe cell.Interior.ColorIndex <> xlAsnjë Atëherë nëse myRange nuk është asgjë, atëherë vendosni MyRange = celulë Else Set myRange = Union (myRange, qeliza) Fund If End If Qeliza tjetër me GetObject ("E re:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(myPutInlip Endboard).  

Siç mund ta imagjinoni lehtësisht, kushtet mund të vendosen absolutisht çdo - deri në formatet e qelizave - dhe në çdo sasi (përfshirë duke i lidhur ato së bashku me operatorët logjikë ose ose dhe). Ka shumë vend për imagjinatë.

  • Konvertoni formulat në vlera (6 mënyra)
  • Çfarë janë makro, si t'i përdorim ato, ku të futni kodin Visual Basic
  • Informacion i dobishëm në shiritin e statusit të Microsoft Excel

Lini një Përgjigju