Kopi sòm selil chwazi yo nan Clipboard

Pafwa li pran anpil tan pou vini ak kèk bagay. Men, lè yo te deja envante, apre lefèt yo sanble evidan e menm ordinèr. Soti nan seri a "ki sa, li te posib?".

Soti nan premye vèsyon yo, ba estati a ki anba fenèt Microsoft Excel tradisyonèlman te montre total pou selil yo chwazi yo:

Kopi sòm selil chwazi yo nan Clipboard

Si ou vle, li te menm posib klike sou rezilta sa yo epi chwazi nan meni kontèks egzakteman ki fonksyon nou vle wè:

Kopi sòm selil chwazi yo nan Clipboard

Epi jis dènyèman, nan dènye mizajou Excel yo, devlopè Microsoft te ajoute yon karakteristik ki senp men enjenyeu - kounye a lè w klike sou rezilta sa yo, yo kopye yo nan clipboard la!

Kopi sòm selil chwazi yo nan Clipboard

Bote. 

Men, sa ki sou moun ki poko (oswa deja?) Gen tankou yon vèsyon nan Excel? Sa a se kote macros senp ka ede.

Kopi sòm selil yo chwazi nan Clipboard la lè l sèvi avèk yon makro

Louvri nan tab pwomotè (Devlopè) editè Vizyèl Debaz oswa itilize rakoursi klavye sa a Alt+F11. Mete nouvo modil vid atravè meni Mete – Modil epi kopye kòd sa a la:

Sub SumSelected() If TypeName(Seleksyon) <> "Range" Lè sa a, sòti Sub ak GetObject("Nouvo:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}").  

Lojik li se senp:

  • Premye vini "pwoteksyon kont moun san konprann" - nou tcheke sa egzakteman ki make. Si se pa selil yo chwazi (men, pou egzanp, yon tablo), Lè sa a, sòti makro a.
  • Lè sa a, sèvi ak lòd la Getobject nou kreye yon nouvo objè done kote sòm nou an nan selil chwazi yo pral estoke pita. Yon kòd alfanumerik long ak enkonpreyansib se, an reyalite, yon lyen nan branch rejis Windows kote bibliyotèk la ye. Bibliyotèk objè Microsoft Forms 2.0, ki ka kreye objè sa yo. Pafwa yo rele tou trick sa a implicite an reta obligatwa. Si ou pa sèvi ak li, Lè sa a, ou ta dwe fè yon lyen nan bibliyotèk sa a nan dosye a nan meni an Zouti — Referans.
  • Sòm selil yo chwazi yo konsidere kòm yon lòd WorksheetFunction.Sum(Seleksyon), ak Lè sa a, kantite lajan ki kapab lakòz yo mete sou clipboard la ak lòd la MeteInClipboard

Pou fasilite yo itilize, ou ka, nan kou, bay makro sa a nan yon chemen kout klavye lè l sèvi avèk bouton an Makro tab pwomotè (Devlopè — Macro).

Men, si ou vle wè ki sa egzakteman yo te kopye apre yo fin kouri makro a, ou ka vire sou panèl la Clipboard lè l sèvi avèk ti flèch ki nan kwen ki pi ba dwat nan gwoup korespondan an sou. Prensipal la (Kay) tab:

Kopi sòm selil chwazi yo nan Clipboard

Se pa sèlman kantite lajan an

Si, anplis kantite lajan ordinèr, ou vle yon lòt bagay, Lè sa a, ou ka itilize nenpòt nan fonksyon yo ke objè a bay nou. WorksheetFunction:

Kopi sòm selil chwazi yo nan Clipboard

Pou egzanp, gen:

  • Sòm - sòm
  • Mwayèn - vle di aritmetik
  • Konte - kantite selil ki gen nimewo
  • CountA - kantite selil plen
  • CountBlank - kantite selil vid
  • Min - valè minimòm
  • Max - valè maksimòm
  • Medyan - medyàn (valè santral)
  • ... elatriye

Ki gen ladan filtè ak ranje-kolòn kache

E si ranje oswa kolòn yo kache (manyèlman oswa pa yon filtè) nan seri a chwazi? Nan lòd pa pran yo an kont nan total yo, nou pral bezwen yon ti kras modifye kòd nou an lè nou ajoute nan objè a. Seleksyon pwopriyete Special Cells(xlCellTypeVisible):

Sub SumVisible() Si TypeName(Seleksyon) <> "Range" Lè sa a, sòti Sub ak GetObject("Nouvo:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection.SpecialCell)) . PutInClipboard End With End Sub  

Nan ka sa a, kalkil nenpòt fonksyon total yo pral aplike nan selil vizib sèlman.

Si ou bezwen yon fòmil vivan

Si ou rèv, ou ka vini ak senaryo lè li pi bon pou kopye pa yon nimewo (konstan), men yon fòmil k ap viv nan tanpon an, ki kalkile total nou bezwen pou selil yo chwazi yo. Nan ka sa a, ou pral oblije kole fòmil la soti nan fragman, ajoute nan li retire siy dola ak ranplase vigil la (ki itilize kòm yon separasyon ant adrès plizyè seri chwazi nan VBA) ak yon pwen-virgul:

Sub SumFormula() If TypeName(Seleksyon) <> "Range" Lè sa a, sòti Sub ak GetObject ("Nouvo:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText "=СУММ(" & Ranplase.(Ranplase). Adrès, ",", ";"), "$", "") & ")" .PutInClipboard End With End Sub  

Somasyon ak kondisyon adisyonèl

Epi, finalman, pou maniac konplètman, ou ka ekri yon makro ki pral rezime pa tout selil yo chwazi, men se sèlman sa yo ki satisfè kondisyon yo bay yo. Se konsa, pou egzanp, yon makro ap gade tankou ki mete sòm selil yo chwazi nan tanpon an, si valè yo pi gran pase 5 epi an menm tan yo plen ak nenpòt koulè:

 Sub CustomCalc() Dim myRange As Range If TypeName(Seleksyon) <> "Range" Lè sa a, Sòti Sub Pou Chak selil nan Seleksyon Si cell.Value > 5 Ak cell.Interior.ColorIndex <> xlNone Lè sa a, Si myRange Pa gen anyen Lè sa a, Mete myRange = cell Else Mete myRange = Union(myRange, cell) End If End If Next cell With GetObject("Nouvo:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(myRange) .End WithEnClipboard  

Kòm ou ka fasilman imajine, kondisyon yo ka mete absoliman nenpòt - jiska fòma selil - ak nan nenpòt ki kantite (ki gen ladan pa lyen yo ansanm ak operatè lojik oswa oswa ak). Gen anpil plas pou imajinasyon.

  • Konvèti fòmil yo an valè (6 fason)
  • Ki sa ki makro, ki jan yo sèvi ak yo, ki kote yo mete kòd Visual Basic
  • Enfòmasyon itil nan ba estati Microsoft Excel

Kite yon Reply