Маблағи чашмакҳои интихобшударо ба буфер нусхабардорӣ кунед

Баъзан барои таҳияи баъзе чизҳо вақти хеле тӯлонӣ лозим аст. Аммо вақте ки онҳо аллакай ихтироъ шудаанд, пас аз он, онҳо равшан ва ҳатто ғайриоддӣ ба назар мерасанд. Аз силсилаи «Чй, мумкин буд?».

Аз версияҳои аввал, сатри вазъ дар поёни равзанаи Microsoft Excel маъмулан ҷамъи чашмакҳои интихобшударо нишон медод:

Маблағи чашмакҳои интихобшударо ба буфер нусхабардорӣ кунед

Агар хоҳед, ҳатто имкон дошт, ки ин натиҷаҳоро бо тугмаи рости муш пахш кунед ва аз менюи контекстӣ маҳз кадом функсияҳоро мо дидан мехоҳед, интихоб кунед:

Маблағи чашмакҳои интихобшударо ба буфер нусхабардорӣ кунед

Ва ба наздикӣ, дар навсозиҳои охирини Excel, таҳиягарони Microsoft як хусусияти оддӣ, вале моҳирона илова карданд - ҳоло вақте ки шумо ин натиҷаҳоро пахш мекунед, онҳо ба буфер нусхабардорӣ карда мешаванд!

Маблағи чашмакҳои интихобшударо ба буфер нусхабардорӣ кунед

Зебоӣ. 

Аммо дар бораи онҳое, ки ҳанӯз (ё аллакай?) чунин версияи Excel надоранд, чӣ гуфтан мумкин аст? Дар ин ҷо макросҳои оддӣ метавонанд кӯмак расонанд.

Нусхабардории ҷамъи чашмакҳои интихобшуда ба буфер бо истифода аз макрос

Дар ҷадвал кушоед таҳиякунанда (Таҳиягар) муҳаррир Visual Basic ё ин миёнабури клавиатураро истифода баред Alt+F11. Модули нави холиро тавассути меню ворид кунед Ворид - Модул ва рамзи зеринро дар он ҷо нусхабардорӣ кунед:

Sub SumSelected() Агар TypeName(Интихоб) <> "Диапазон" Пас аз зер берун шавед бо GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection EnutCd EnPd).  

Мантиқи он оддӣ аст:

  • Аввалан "ҳимоя аз аблаҳ" меояд - мо тафтиш мекунем, ки маҳз чиро таъкид кардааст. Агар ячейка интихоб нашуда бошад (вале, масалан, диаграмма), пас аз макрос хориҷ шавед.
  • Сипас бо истифода аз фармон Getobject мо объекти нави маълумотро эҷод мекунем, ки дар он миқдори ҳуҷайраҳои интихобшудаи мо дертар нигоҳ дошта мешавад. Рамзи алифбои рақамӣ дароз ва нофаҳмо аст, дар асл, пайванд ба филиали сабти Windows, ки китобхона ҷойгир аст. Китобхонаи объектҳои Microsoft Forms 2.0, ки чунин объектхоро ба вучуд оварда метавонад. Баъзан ин ҳилла низ номида мешавад бастабандии беохир. Агар шумо онро истифода набаред, шумо бояд ба ин китобхона дар файл тавассути меню истинод кунед Воситаҳо — Иқтибосҳо.
  • Маҷмӯи чашмакҳои интихобшуда фармон ҳисобида мешавад WorksheetFunction.Sum(Интихоб), ва баъд маблағи ҳосилшуда бо фармон дар буфер ҷойгир карда мешавад PutInClipboard

Барои осонии истифода, шумо метавонед, албатта, бо истифода аз тугма ин макросро ба миёнабури клавиатура таъин кунед Макрос ҷадвали таҳиякунанда (Таҳиягар — Макрос).

Ва агар шумо хоҳед бинед, ки пас аз иҷро кардани макрос чӣ нусхабардорӣ шудааст, шумо метавонед панели буферро бо истифода аз тирчаи хурд дар кунҷи рости поёни гурӯҳи мувофиқ дар Асосӣ (Хона) ҷадвали:

Маблағи чашмакҳои интихобшударо ба буфер нусхабардорӣ кунед

На танҳо маблағи

Агар ба ғайр аз маблағи ғайриоддӣ, шумо чизи дигаре хоҳед, пас шумо метавонед ягон функсияеро истифода баред, ки объект ба мо медиҳад Функсияи варақаи корӣ:

Маблағи чашмакҳои интихобшударо ба буфер нусхабардорӣ кунед

Масалан, вуҷуд дорад:

  • сум — сум
  • Миёна – миёнаи арифметикӣ
  • Ҳисоб - шумораи ҳуҷайраҳо бо рақамҳо
  • CountA - шумораи ҳуҷайраҳои пуршуда
  • CountBlank - шумораи ҳуҷайраҳои холӣ
  • Мин – арзиши ҳадди ақал
  • Max - арзиши ҳадди аксар
  • Медиан – медиан (арзиши марказӣ)
  • ... ва ғайра

Аз ҷумла филтрҳо ва сутунҳои сатри пинҳон

Чӣ мешавад, агар сатрҳо ё сутунҳо дар диапазони интихобшуда (дастӣ ё филтр) пинҳон бошанд? Барои он ки онҳоро дар ҷамъбаст ба инобат нагирем, ба мо лозим меояд, ки рамзи худро бо илова кардани объект каме тағир диҳем. Интихоб молу мулк Ҳуҷайраҳои махсус (xlCellTypeVisible):

Sub SumVisible() Агар TypeName(Интихоб) <> "Диапазон" Пас аз Sub бо GetObject ("Нав:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.SumText(Selection.Selection) "Diapani"-ро бароед. PutInClipboard Анҷом бо End Sub  

Дар ин ҳолат, ҳисобкунии ҳама гуна функсияи умумӣ танҳо ба ячейкаҳои намоён татбиқ карда мешавад.

Агар ба шумо формулаи зинда лозим бошад

Агар шумо орзу кунед, шумо метавонед сенарияҳоеро пайдо кунед, ки беҳтар аст на рақам (довим), балки формулаи зиндаро ба буфер нусхабардорӣ кунед, ки ҷамъбасти моро барои ҳуҷайраҳои интихобшуда ҳисоб мекунад. Дар ин ҳолат, шумо бояд формуларо аз порчаҳо часпонед, ба он нест кардани аломатҳои долларро илова кунед ва вергулро (ки ҳамчун ҷудокунанда байни суроғаҳои якчанд диапазони интихобшуда дар VBA истифода мешавад) бо нуқта-вергул иваз кунед:

Sub SumFormula() Агар TypeName(Интихоб) <> "Диапазон" Пас аз зербобо бо GetObject баромад кунед("Нав:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText "=СУММ(" & Иваз (Иваз (Интихоб). Суроға, ",", ";"), "$", "") & ")" .PutInClipboard End бо End Sub  

Ҷамъбаст бо шартҳои иловагӣ

Ва, ниҳоят, барои манякҳои комилан, шумо метавонед макросе нависед, ки на ҳама ҳуҷайраҳои интихобшударо ҷамъбаст мекунад, балки танҳо онҳоеро, ки ба шартҳои додашуда қонеъ мекунанд, ҷамъбаст мекунад. Ҳамин тавр, масалан, макрос чунин хоҳад буд, ки маблағи чашмакҳои интихобшударо ба буфер мегузорад, агар қиматҳои онҳо аз 5 зиёд бошанд ва дар айни замон онҳо бо дилхоҳ ранг пур карда шаванд:

 Sub CustomCalc() myRange-ро ҳамчун диапазон хира кунед, агар TypeName(Интихоб) <> "Диапазон" Пас аз зер барои ҳар як чашмаки интихоб хориҷ шавед Агар cell.Value > 5 ва cell.Interior.ColorIndex <> xlNone Пас агар myRange ҳеҷ чиз набошад, myRange -ро танзим кунед = ячейкаи Else Танзими myRange = Union(myRange, ячейка) End If End If Ячейкаи навбатӣ бо GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(myRange) End.  

Тавре ки шумо ба осонӣ тасаввур карда метавонед, шартҳоро комилан ҳама гуна - то форматҳои ячейка - ва ба ҳар миқдор муқаррар кардан мумкин аст (аз ҷумла тавассути пайваст кардани онҳо бо операторҳои мантиқӣ ё ё ва). Барои тасаввурот фазои зиёде мавҷуд аст.

  • Табдил додани формулаҳо ба арзишҳо (6 роҳ)
  • Макросҳо чист, чӣ тавр истифода бурдани онҳо, ба куҷо ворид кардани рамзи Visual Basic
  • Маълумоти муфид дар сатри ҳолати Microsoft Excel

Дин ва мазҳаб