Таңдалған ұяшықтардың қосындысын алмасу буферіне көшіріңіз

Кейде кейбір нәрселерді ойлап табу өте ұзақ уақытты алады. Бірақ олар қазірдің өзінде ойлап табылған кезде, олар анық және тіпті қарапайым болып көрінеді. «Не, бұл мүмкін болды?» сериясынан.

Алғашқы нұсқалардан бастап, Microsoft Excel терезесінің төменгі жағындағы күй жолағы таңдалған ұяшықтар үшін қорытындыларды дәстүрлі түрде көрсетеді:

Таңдалған ұяшықтардың қосындысын алмасу буферіне көшіріңіз

Қажет болса, осы нәтижелерді тінтуірдің оң жақ түймешігімен басып, контекстік мәзірден нақты қандай функцияларды көргіміз келетінін таңдауға болады:

Таңдалған ұяшықтардың қосындысын алмасу буферіне көшіріңіз

Жақында, соңғы Excel жаңартуларында Microsoft әзірлеушілері қарапайым, бірақ тапқыр мүмкіндік қосты – енді осы нәтижелерді басқан кезде, олар алмасу буферіне көшіріледі!

Таңдалған ұяшықтардың қосындысын алмасу буферіне көшіріңіз

Сұлулық. 

Бірақ мұндай Excel нұсқасы әлі жоқ (немесе әлдеқашан?) кімде ше? Бұл жерде қарапайым макростар көмектесе алады.

Таңдалған ұяшықтардың қосындысын макрос арқылы алмасу буферіне көшіру

Қойындыда ашыңыз әзірлеуші (Әзірлеуші) редактор Visual Basic немесе осы пернелер тіркесімін пайдаланыңыз Alt+F11. Мәзір арқылы жаңа бос модульді салыңыз Кірістіру – модуль және сол жерге келесі кодты көшіріңіз:

Sub SumSelected() Егер TypeName(Таңдау) <> "Ауқым" болса, GetObject("Жаңа:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection) EnutCd EnPd арқылы Sub тақтасынан шығыңыз.  

Оның логикасы қарапайым:

  • Алдымен «ақымақтан қорғау» келеді - біз нақты ненің ерекшеленгенін тексереміз. Ұяшықтар таңдалмаса (бірақ, мысалы, диаграмма), макростан шығыңыз.
  • Содан кейін пәрменді пайдаланыңыз Getobject таңдалған ұяшықтар сомасы кейінірек сақталатын жаңа деректер нысанын жасаймыз. Ұзын және түсініксіз әріптік-цифрлық код шын мәнінде кітапхана орналасқан Windows тізілімінің бөлімшесіне сілтеме болып табылады. Microsoft Forms 2.0 нысандар кітапханасы, ол осындай нысандарды жасай алады. Кейде бұл трюк деп те аталады жасырын кеш байлану. Егер сіз оны пайдаланбасаңыз, мәзір арқылы файлдағы осы кітапханаға сілтеме жасауыңыз керек Құралдар — Анықтамалар.
  • Таңдалған ұяшықтардың қосындысы команда болып саналады WorksheetFunction.Sum(таңдау), содан кейін алынған сома пәрменмен алмасу буферіне орналастырылады PutInClipboard

Пайдалануға ыңғайлы болу үшін, әрине, түймені пайдаланып, бұл макросты пернелер тіркесіміне тағайындауға болады макростар қойындысы әзірлеуші (Әзірлеуші ​​— макростар).

Егер макросты іске қосқаннан кейін нақты не көшірілгенін көргіңіз келсе, тиісті топтың төменгі оң жақ бұрышындағы кішкентай көрсеткіні пайдаланып аралық сақтағыш тақтасын қосуға болады. Басты (Үй) қойынды:

Таңдалған ұяшықтардың қосындысын алмасу буферіне көшіріңіз

Тек сома ғана емес

Егер сіз банальды сомадан басқа, тағы бір нәрсені қаласаңыз, онда объект бізге беретін функциялардың кез келгенін пайдалана аласыз. WorksheetFunction:

Таңдалған ұяшықтардың қосындысын алмасу буферіне көшіріңіз

Мысалы, бар:

  • қосынды – сома
  • Орташа – арифметикалық орта
  • Санау – сандары бар ұяшықтар саны
  • CountA – толтырылған ұяшықтар саны
  • CountBlank – бос ұяшықтар саны
  • Мин – ең аз мән
  • Max – максималды мән
  • Медиана – медиана (орталық мән)
  • ... және т.б.

Сүзгілерді және жасырын жол бағандарын қоса

Таңдалған ауқымда жолдар немесе бағандар жасырылған (қолмен немесе сүзгі арқылы) не істеу керек? Оларды жиынтықта ескермеу үшін объектке қосу арқылы кодты сәл өзгертуіміз керек. таңдау меншік Арнайы ұяшықтар(xlCellTypeVisible):

Sub SumVisible() Егер TypeName(Таңдау) <> "Ауқым" болса, GetObject арқылы ішкі бөлімнен шығыңыз("Жаңа:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection.Seells.Visible)VSpecialCell. PutInClipboard Соңында Соңы Ішкі  

Бұл жағдайда кез келген жалпы функцияны есептеу тек көрінетін ұяшықтарға қолданылады.

Егер сізге тірі формула керек болса

Егер сіз армандайтын болсаңыз, таңдалған ұяшықтар үшін қажетті қорытындыларды есептейтін буферге санды (тұрақты) емес, тірі формуланы көшіру жақсы болған кезде сценарийлер жасай аласыз. Бұл жағдайда формуланы фрагменттерден желімдеу керек, оған доллар белгілерін алып тастау және үтірді (VBA-да бірнеше таңдалған ауқымдардың мекенжайлары арасында бөлгіш ретінде пайдаланылады) нүктелі үтірмен ауыстыру керек:

Sub SumFormula() TypeName(Таңдау) <> "Ауқым" болса, GetObject арқылы Sub шығыңыз("Жаңа:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText "=СУММ(" & Ауыстыру(Ауыстыру(таңдау.). Мекенжай, ",", ";"), "$", "") & ")" .PutInClipboard End with End Sub  

Қосымша шарттармен қорытындылау

Және, ақырында, толық маньяктар үшін сіз барлық таңдалған ұяшықтарды емес, берілген шарттарды қанағаттандыратындарды ғана қорытындылайтын макрос жаза аласыз. Мысалы, макрос таңдалған ұяшықтардың сомасын Буферге қоятындай болады, егер олардың мәндері 5-тен үлкен болса және олар кез келген түспен толтырылған болса:

 Sub CustomCalc() myRange диапазон ретінде күңгірттендіріңіз, TypeName(Selection) <> "Ауқым" Содан кейін cell.Value > 5 болса және cell.Interior.ColorIndex <> xlNone болса, Таңдаудағы әрбір ұяшық үшін ішкі ұяшықтан шығыңыз, егер myRange ештеңе болмаса, myRange мәнін орнатыңыз = ұяшық Else myRange = Union(myRange, ұяшық) End If End If End Егер келесі ұяшықты GetObject арқылы орнатыңыз("Жаңа:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(myRange)EndC.Enlip.  

Сіз оңай елестете алатындай, шарттарды мүлдем кез келген – ұяшық пішімдеріне дейін – және кез келген мөлшерде орнатуға болады (соның ішінде оларды логикалық операторлармен немесе немесе және және) байланыстыру арқылы. Қиялға көп орын бар.

  • Формулаларды мәндерге түрлендіру (6 әдіс)
  • Макростар дегеніміз не, оларды пайдалану жолы, Visual Basic кодын қайда енгізу керек
  • Microsoft Excel бағдарламасының күй жолағындағы пайдалы ақпарат

пікір қалдыру