Përmbajtje
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:
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:
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!
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:
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:
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
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