Копирајте го збирот на избраните ќелии во таблата со исечоци

Понекогаш е потребно многу долго време да се смисли некои работи. Но, кога тие веќе се измислени, по фактот изгледаат очигледни, па дури и банални. Од серијата „што, тоа беше можно?“.

Уште од првите верзии, статусната лента на дното на прозорецот на Microsoft Excel традиционално ги прикажува збировите за избраните ќелии:

Копирајте го збирот на избраните ќелии во таблата со исечоци

Доколку сакате, дури беше можно да кликнете со десното копче на овие резултати и да изберете од контекстното мени кои точно функции сакаме да ги видиме:

Копирајте го збирот на избраните ќелии во таблата со исечоци

И токму неодамна, во најновите ажурирања на Excel, програмерите на Microsoft додадоа едноставна, но генијална функција - сега кога ќе кликнете на овие резултати, тие се копираат во таблата со исечоци!

Копирајте го збирот на избраните ќелии во таблата со исечоци

Убавина. 

Но, што е со оние кои сè уште немаат (или веќе?) имаат таква верзија на Excel? Ова е местото каде што едноставните макроа можат да помогнат.

Копирање на збирот на избраните ќелии на таблата со исечоци со помош на макро

Отворете во јазичето инвеститорот (програмер) уредник Visual Basic или користете ја оваа кратенка на тастатурата Alt+F11. Вметнете нов празен модул преку менито Вметни – Модул и копирајте го следниов код таму:

Sub SumSelected() If TypeName(Selection) <> "Range" Потоа излезете од Sub со GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Putboard WithSelection)  

Неговата логика е едноставна:

  • Прво доаѓа „заштита од будала“ - проверуваме што точно е означено. Ако не се избрани ќелии (туку, на пример, графикон), тогаш излезете од макрото.
  • Потоа користејќи ја командата Getobject создаваме нов податочен објект каде што подоцна ќе се складира нашиот збир на избрани ќелии. Долг и неразбирлив алфанумерички код е, всушност, врска до гранката на регистарот на Windows каде што се наоѓа библиотеката Објект библиотека на Microsoft Forms 2.0, кој може да создаде такви објекти. Понекогаш овој трик се нарекува и имплицитно доцно врзување. Ако не го користите, тогаш ќе треба да направите врска до оваа библиотека во датотеката преку менито Алатки — Референци.
  • Збирот на избраните ќелии се смета за команда Работен листFunction.Sum(Избор), а потоа добиената сума се става на таблата со исечоци со командата PutInClipboard

За полесно користење, можете, се разбира, да го доделите ова макро на кратенка на тастатурата користејќи го копчето Макроа табот инвеститорот (Програмер - макроа).

И ако сакате да видите што точно е копирано по извршувањето на макрото, можете да го вклучите панелот Clipboard користејќи ја малата стрелка во долниот десен агол на соодветната група на Главните (Дома) таб:

Копирајте го збирот на избраните ќелии во таблата со исечоци

Не само износот

Доколку, покрај баналната сума, сакате нешто друго, тогаш можете да користите која било од функциите што ни ги дава објектот Работен лист Функција:

Копирајте го збирот на избраните ќелии во таблата со исечоци

На пример, постои:

  • Сума – сума
  • Просечна - аритметичка средина
  • Броење - број на ќелии со броеви
  • CountA – број на пополнети ќелии
  • CountBlank – број на празни ќелии
  • Мин – минимална вредност
  • Макс – максимална вредност
  • Медијана - средна (средна вредност)
  • … Итн

Вклучувајќи филтри и скриени редови-колони

Што ако редовите или колоните се скриени (рачно или со филтер) во избраниот опсег? За да не ги земеме предвид во збирките, ќе треба малку да го измениме нашиот код со додавање на објектот Избор сопственост SpecialCells (xlCellTypeVisible):

Sub SumVisible() If TypeName(Selection) <> "Range" Потоа излезете од Sub со GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(SellSelells)(SellSelection). PutInClipboard End With End Sub  

Во овој случај, пресметката на која било вкупна функција ќе се примени само на видливи ќелии.

Ако ви треба жива формула

Ако сонувате, можете да смислите сценарија кога е подобро да не копирате број (постојана), туку жива формула во тампонот, кој ги пресметува вкупните збирови што ни се потребни за избраните ќелии. Во овој случај, ќе треба да ја залепите формулата од фрагменти, додавајќи на неа отстранување на знаците за долар и заменувајќи ја запирката (која се користи како раздвојувач помеѓу адресите на неколку избрани опсези во VBA) со точка-запирка:

Sub SumFormula() If TypeName(Selection) <> "Range" Потоа излезете од Sub со GetObject("Ново:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText "=СУММ(" & Replace.(Selection. Адреса, ","", ";"), "$", "") и ")" .PutInClipboard крај со крај под  

Сумирање со дополнителни услови

И, конечно, за целосно манијаци, можете да напишете макро што ќе ги сумира не сите избрани ќелии, туку само оние што ги задоволуваат дадените услови. Така, на пример, макрото ќе изгледа вака што го става збирот на избраните ќелии во баферот, ако нивните вредности се поголеми од 5 и во исто време се полни со која било боја:

 Sub CustomCalc() Dim myRange as Range If TypeName(Selection) <> „Range“ Потоа излезете од Sub For Every cell In Selection If cell.Value > 5 And cell.Interior.ColorIndex <> xlNone Потоа ако myRange е ништо, тогаш поставете го мојот опсег = cell Else Set myRange = Union(myRange, cell) End If End If Next cell With GetObject(„Ново:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}“) .SetText WorksheetFunction.Sum(myPutInlip Endboard).  

Како што можете лесно да замислите, условите може да се постават апсолутно какви било – до формати на ќелии – и во која било количина (вклучувајќи ги и со нивно поврзување со логички оператори или или и). Има многу простор за имагинација.

  • Претворете ги формулите во вредности (6 начини)
  • Што се макроа, како да ги користите, каде да го вметнете кодот на Visual Basic
  • Корисни информации во статусната лента на Microsoft Excel

Оставете Одговор