Kopyahin ang kabuuan ng mga napiling cell sa Clipboard

Minsan kailangan ng napakatagal na panahon para makaisip ng ilang bagay. Ngunit kapag sila ay naimbento na, pagkatapos ng katotohanan na sila ay tila halata at kahit na banal. Mula sa seryeng "ano, posible?".

Mula sa pinakaunang mga bersyon, ang status bar sa ibaba ng window ng Microsoft Excel ay tradisyonal na nagpapakita ng mga kabuuan para sa mga napiling cell:

Kopyahin ang kabuuan ng mga napiling cell sa Clipboard

Kung ninanais, posible pa ring mag-right click sa mga resultang ito at pumili mula sa menu ng konteksto kung aling mga function ang gusto naming makita:

Kopyahin ang kabuuan ng mga napiling cell sa Clipboard

At kamakailan lamang, sa pinakabagong mga update sa Excel, nagdagdag ang mga developer ng Microsoft ng simple ngunit mapanlikhang feature – ngayon kapag nag-click ka sa mga resultang ito, kinokopya ang mga ito sa clipboard!

Kopyahin ang kabuuan ng mga napiling cell sa Clipboard

Kagandahan. 

Ngunit ano ang tungkol sa mga wala pa (o mayroon na?) ng gayong bersyon ng Excel? Dito makakatulong ang mga simpleng macro.

Kinokopya ang kabuuan ng mga napiling cell sa Clipboard gamit ang isang macro

Buksan sa tab developer (Developer) editor Visual Basic o gamitin ang keyboard shortcut na ito Alt+F11. Magpasok ng bagong walang laman na module sa pamamagitan ng menu Ipasok – Module at kopyahin ang sumusunod na code doon:

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

Ang lohika nito ay simple:

  • Una ay ang "proteksyon mula sa tanga" - sinusuri namin kung ano ang eksaktong naka-highlight. Kung hindi mga cell ang napili (ngunit, halimbawa, isang tsart), pagkatapos ay lumabas sa macro.
  • Pagkatapos ay gamit ang command Getobject gumawa kami ng bagong data object kung saan ang kabuuan ng mga napiling cell ay iimbak sa ibang pagkakataon. Ang isang mahaba at hindi maintindihan na alphanumeric code ay, sa katunayan, isang link sa Windows registry branch kung saan matatagpuan ang library Microsoft Forms 2.0 Object Library, na maaaring lumikha ng mga naturang bagay. Minsan tinatawag din ang trick na ito implicit late binding. Kung hindi mo ito gagamitin, kailangan mong gumawa ng link sa library na ito sa file sa pamamagitan ng menu Mga Tool — Mga Sanggunian.
  • Ang kabuuan ng mga napiling cell ay itinuturing na isang command WorksheetFunction.Sum(Selection), at pagkatapos ay ang resultang halaga ay inilalagay sa clipboard gamit ang command PutInClipboard

Para sa kadalian ng paggamit, maaari mong, siyempre, italaga ang macro na ito sa isang keyboard shortcut gamit ang button Macros tab developer (Developer — Macros).

At kung gusto mong makita kung ano ang eksaktong kinopya pagkatapos patakbuhin ang macro, maaari mong i-on ang panel ng Clipboard gamit ang maliit na arrow sa kanang sulok sa ibaba ng kaukulang grupo sa Ang pangunahing (Tahanan) tab:

Kopyahin ang kabuuan ng mga napiling cell sa Clipboard

Hindi lang ang dami

Kung, bilang karagdagan sa karaniwang halaga, gusto mo ng iba pa, maaari mong gamitin ang alinman sa mga function na ibinibigay sa amin ng object WorksheetFunction:

Kopyahin ang kabuuan ng mga napiling cell sa Clipboard

Halimbawa, mayroong:

  • Kabuuan – kabuuan
  • Katamtaman – arithmetic mean
  • Bilang – bilang ng mga cell na may mga numero
  • CountA – bilang ng mga napunong cell
  • CountBlank – bilang ng mga walang laman na cell
  • Min – pinakamababang halaga
  • Max – pinakamataas na halaga
  • Median – median (sentral na halaga)
  • ... atbp.

Kasama ang mga filter at nakatagong row-column

Paano kung nakatago ang mga row o column (manual o sa pamamagitan ng isang filter) sa napiling hanay? Upang hindi isaalang-alang ang mga ito sa mga kabuuan, kakailanganin naming bahagyang baguhin ang aming code sa pamamagitan ng pagdaragdag sa object Pagpili ari-arian SpecialCells(xlCellTypeVisible):

Sub SumVisible() If TypeName(Selection) <> "Range" Then Exit Sub With GetObject("Bago:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection.SpecialCell)T(x) PutInClipboard Nagtatapos Sa End Sub  

Sa kasong ito, ang pagkalkula ng anumang kabuuang function ay ilalapat sa mga nakikitang cell lamang.

Kung kailangan mo ng buhay na pormula

Kung nangangarap ka, maaari kang makabuo ng mga sitwasyon kung kailan mas mahusay na kopyahin hindi ang isang numero (constant), ngunit isang buhay na formula sa buffer, na kinakalkula ang mga kabuuan na kailangan namin para sa mga napiling cell. Sa kasong ito, kakailanganin mong idikit ang formula mula sa mga fragment, idagdag dito ang pag-alis ng mga dollar sign at palitan ang kuwit (na ginagamit bilang isang separator sa pagitan ng mga address ng ilang napiling hanay sa VBA) ng isang semicolon:

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

Pagsusuma na may mga karagdagang kundisyon

At, sa wakas, para sa ganap na mga maniac, maaari kang magsulat ng isang macro na magbubuod ng hindi lahat ng mga napiling mga cell, ngunit lamang ang mga nakakatugon sa mga ibinigay na kondisyon. Kaya, halimbawa, ang isang macro ay magmumukhang naglalagay ng kabuuan ng mga napiling mga cell sa Buffer, kung ang kanilang mga halaga ay higit sa 5 at sa parehong oras ay napuno sila ng anumang kulay:

 Sub CustomCalc() Dim myRange Bilang Range Kung TypeName(Selection) <> "Range" Pagkatapos Lumabas sa Sub Para sa Bawat cell Sa Selection Kung cell.Value > 5 At cell.Interior.ColorIndex <> xlWala Pagkatapos Kung myRange Ay Wala Pagkatapos Itakda ang myRange = cell Iba Pa Itakda ang 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  

Gaya ng madali mong maiisip, ang mga kundisyon ay maaaring ganap na itakda ang anuman – hanggang sa mga format ng cell – at sa anumang dami (kabilang ang sa pamamagitan ng pag-uugnay sa mga ito kasama ng mga lohikal na operator o o at). Mayroong maraming puwang para sa imahinasyon.

  • I-convert ang mga formula sa mga halaga (6 na paraan)
  • Ano ang mga macro, kung paano gamitin ang mga ito, kung saan ilalagay ang Visual Basic code
  • Kapaki-pakinabang na impormasyon sa status bar ng Microsoft Excel

Mag-iwan ng Sagot