Сари вақт иҷро кардани макрос

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

Биёед бубинем, ки Excel ва Windows чӣ қобилияти амалӣ кардани ин корро доранд.

Иҷрои макрос дар басомади додашуда

Роҳи осонтарини ин кор истифодаи усули дарунсохт VBA мебошад Application.OnTimeОн, ки макроси муайяншударо дар вақти муайян иҷро мекунад. Биёед инро бо мисоли амалӣ фаҳмем.

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

Dim TimeToRun 'тағйирёбандаи глобалӣ, ки дар он вақти иҷрои навбатӣ нигоҳ дошта мешавад 'ин макроси асосии Sub MyMacro() Application.Calculate аст 'аз нав ҳисоб кардани китоб Диапазон("A1").Interior.ColorIndex = Int(Rnd() * 56) 'пур кунед ячейкаи A1 бо ранги тасодуфӣ :) NextRun-ро занг занед 'макроси NextRun-ро иҷро кунед, то вақти иҷрои навбатии End Sub 'ин макрос вақтро барои иҷроиши навбатии макроси асосии Sub NextRun() TimeToRun = Акнун + TimeValue("00: 00:03") 'ба вақти ҷорӣ 3 сония илова кунед Application.OnTime TimeToRun, "MyMacro" 'наќшаи иљрои навбатии End Sub 'макрос барои оғоз кардани пайдарпаии такрорӣ Sub Start() NextRun End Sub 'макроро занг занед, то пайдарпайии такрориро қатъ кунед Sub Finish() Application.OnTime TimeToRun, "MyMacro", , False End Sub  

Биёед бифаҳмем, ки дар ин ҷо чӣ аст.

Аввалан, ба мо як тағирёбанда лозим аст, ки вақти иҷрои навбатии макроси моро нигоҳ дорад - ман онро даъват кардам TimeToRun. Лутфан қайд кунед, ки мундариҷаи ин тағирёбанда бояд барои ҳама макросҳои минбаъдаи мо дастрас бошад, бинобар ин мо бояд онро созем. саросарӣ, яъне дар ибтидои модул пеш аз аввал эълон кунед Sub.

Минбаъд макроси асосии мо меояд MyMacro, ки вазифаи асосй — бо усули аз нав хисоб кардани китобро ичро мекунад Ариза. Ҳисоб кунед. Барои равшантар кардани он, ман формулаи =TDATE()-ро ба варақаи ячейкаи A1 илова кардам, ки сана ва вақтро нишон медиҳад - ҳангоми аз нав ҳисоб кардан мундариҷаи он дар пеши назари мо нав карда мешавад (танҳо намоиши сонияҳоро дар ячейка фаъол созед. формат). Барои фароғати иловагӣ, ман инчунин ба макро фармони пур кардани ячейкаи A1 бо ранги тасодуфӣ интихобшударо илова кардам (рамзи ранг адади бутун дар диапазони 0..56 мебошад, ки онро функсия тавлид мекунад. Рнд ва як функсияи бутунро гирд мекунад Ш).

Макро Давраи навбатӣ ба арзиши пештара илова мекунад TimeToRun 3 сонияи дигар ва сипас иҷрои навбатии макросро ба нақша мегирад MyMacro барои ин замони нав. Албатта, дар амал, шумо метавонед бо гузоштани аргументҳои функсия ҳар гуна фосилаҳои дигари вақти лозимиро истифода баред Арзиши вақт дар формати hh:mm:ss.

Ва ниҳоят, танҳо барои роҳат, макросҳои оғозёбии пайдарпай илова карда шуданд. хона ва ба итмом расидани он тамом кардан. Охирин далели усули чорумро барои вайрон кардани пайдарпай истифода мебарад. Сари вақт баробар аст дуруц.

Ҳамагӣ, агар шумо макросро иҷро кунед хона, пас тамоми ин карусель чарх мезанад ва мо дар варақ расми зеринро мебинем:

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

Иҷро кардани макрос дар ҷадвал

Албатта, ҳама чизе, ки дар боло тавсиф шудааст, танҳо дар сурате имконпазир аст, ки шумо Microsoft Excel кор карда бошед ва файли мо дар он кушода бошад. Акнун биёед ба як парвандаи мураккабтар назар андозем: шумо бояд Excel-ро мувофиқи ҷадвали додашуда иҷро кунед, масалан, ҳар рӯз соати 5:00, дар он гузориши калон ва мураккабро кушоед ва ҳамаи пайвастҳо ва дархостҳоро дар он навсозӣ кунед, то то вақте ки мо ба кор меоем, омода бошед 🙂

Дар чунин вазъият истифода бурдан беҳтар аст Барномасозони Windows – барномае, ки махсус дар ҳама гуна версияи Windows сохта шудааст, ки метавонад амалҳои мушаххасро дар ҷадвал иҷро кунад. Дар асл, шумо аллакай онро бехабар истифода мебаред, зеро компютери шумо мунтазам навсозиро тафтиш мекунад, базаҳои нави антивирусро зеркашӣ мекунад, папкаҳои абриро ҳамоҳанг месозад ва ғайра. Ин ҳама кори Барномасоз аст. Ҳамин тавр, вазифаи мо ин аст, ки ба вазифаҳои мавҷуда дигаре илова кунем, ки Excel-ро оғоз мекунад ва файли муайяншударо дар он мекушояд. Ва мо макроси худро дар рӯйдод овезон хоҳем кард Китоби корӣ_Кушода ин файл - ва мушкилот ҳал карда мешавад.

Ман мехоҳам шуморо фавран огоҳ кунам, ки кор бо Барномасоз метавонад ҳуқуқҳои пешрафтаи корбарро талаб кунад, аз ин рӯ, агар шумо фармонҳо ва функсияҳои дар поён тавсифшударо дар компютери кории худ дар офис пайдо карда натавонед, барои кӯмак ба мутахассисони IT-и худ муроҷиат кунед.

Оғози Барномасоз

Пас биёед банақшагириро оғоз кунем. Барои ин, шумо метавонед яке аз:

  • Тугмаи ростро пахш кунед Оғоз ва интихоб кунед Идоракунии компютерӣ (Идоракунии компютер)
  • Дар панели идоракунӣ интихоб кунед: Маъмурият - Нақшаи вазифаҳо (Панели идоракунӣ - Асбобҳои маъмурӣ - Банақшагирии вазифаҳо)
  • Аз менюи асосӣ интихоб кунед Оғоз - Лавозимот - Асбобҳои система - Банақшагирии вазифаҳо
  • Радио пахш кунед буриш+R, ворид кунед taskchd.msc ва пахш кунед даромадан

Равзанаи зерин бояд дар экран пайдо шавад (ман версияи англисӣ дорам, аммо шумо метавонед версияи онро низ дошта бошед):

Сари вақт иҷро кардани макрос

Вазифа эҷод кунед

Барои сохтани вазифаи нав бо истифода аз устоди оддии қадам ба қадам, истинодро клик кунед Як вазифаи оддӣ эҷод кунед (Сохтани вазифаи асосӣ) дар панели рост.

Дар қадами аввали устод, ном ва тавсифи супориши сохташавандаро ворид кунед:

Сари вақт иҷро кардани макрос

Тугмаро пахш кунед Баъдӣ (Баъдӣ) ва дар қадами оянда мо триггерро интихоб мекунем - басомади оғозёбӣ ё ҳодисае, ки вазифаи моро оғоз мекунад (масалан, фурӯзон кардани компютер):

Сари вақт иҷро кардани макрос

Агар шумо интихоб кардед ҳаррӯза (Ҳаррӯза), пас дар қадами навбатӣ ба шумо лозим меояд, ки вақти муайян, санаи оғози пайдарпай ва қадамро интихоб кунед (ҳар рӯзи 2-юм, рӯзи 5-ум ва ғ.):

Сари вақт иҷро кардани макрос

Қадами навбатӣ интихоби амал аст - Барномаро иҷро кунед (Барномаро оғоз кунед):

Сари вақт иҷро кардани макрос

Ва дар ниҳоят, чизи ҷолибтарин он аст, ки маҳз он чизеро кушодан лозим аст:

Сари вақт иҷро кардани макрос

дар Барнома ё скрипт (Барнома/скрипт) шумо бояд роҳро ба Microsoft Excel ҳамчун барнома ворид кунед, яъне бевосита ба файли иҷрошавандаи Excel. Дар компютерҳои гуногун бо версияҳои гуногуни Windows ва Office, ин файл метавонад дар ҷузвдонҳои гуногун бошад, аз ин рӯ, дар ин ҷо чанд роҳ барои дарёфти макони он ҳастанд:

  • Барои оғоз кардани Excel дар мизи корӣ ё дар панели супоришҳо ба нишона (миёнабур) рост клик кунед ва фармонро интихоб кунед. Маводҳои (Хусусиятҳо), ва он гоҳ дар равзанаи кушодашуда, роҳро аз сатр нусхабардорӣ кунед Ҳадаф:

    Сари вақт иҷро кардани макрос                      Сари вақт иҷро кардани макрос

  • Ҳар як китоби кории Excel-ро кушоед ва сипас кушоед Вазифаи Manager (Менеҷери вазифаҳо) тела медиҳад Ctrl+Alt+аз ва бо пахши рости сатр Microsoft Excel, фармонро интихоб кунед Маводҳои (Хусусиятҳо). Дар равзанаи кушодашуда шумо метавонед роҳро нусхабардорӣ кунед, фаромӯш накунед, ки ба он хатти баръакс илова кунед ва дар охири EXCEL.EXE:

    Сари вақт иҷро кардани макрос              Сари вақт иҷро кардани макрос

  • Excel-ро кушоед, муҳаррири Visual Basic-ро бо миёнабури клавиатура кушоед Alt+F11, панели кушода фаврӣ омезиши Ctrl+G, фармонро ба он ворид кунед:

    ? Ариза. Роҳ

    ... ва клик кунед даромадан

    Сари вақт иҷро кардани макрос

    Роҳи натиҷаро нусхабардорӣ кунед, фаромӯш накунед, ки ба он хатти баръакс илова кунед ва дар охири EXCEL.EXE.

дар Илова кардани далелҳо (ихтиёрӣ) (Илова кардани далелҳо (ихтиёрӣ)) шумо бояд роҳи пурраи китобро бо макросе, ки мо мехоҳем кушоем, ворид кунед.

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

Сари вақт иҷро кардани макрос

Бо истифода аз тугмаҳои рост идора кардани вазифаи сохташуда қулай аст. Дар ин ҷо шумо метавонед вазифаро тавассути иҷро кардани он фавран санҷед (давидан)бе мунтазири вакти муайяншуда. Шумо метавонед як вазифаро муваққатан ғайрифаъол кунед (Хомӯш кардан)то ки он дар муддати муайян кор карданро қатъ кунад, масалан, таътили шумо. Хуб, шумо ҳамеша метавонед параметрҳоро (санаҳо, вақт, номи файл) тавассути тугма иваз кунед Маводҳои (Хусусиятҳо).

Барои кушодани файл макрос илова кунед

Ҳоло он боқӣ мемонад, ки дар китоби мо овезон кардани ифтитоҳи макросҳое, ки ба мо дар чорабинии кушодаи файл лозим аст. Барои ин китобро кушоед ва бо ёрии миёнабури клавиатура ба муҳаррири Visual Basic гузаред Alt+F11 ё тугмаҳо Visual Basic ҷадвали таҳиякунанда (Таҳиягар). Дар равзанае, ки дар кунҷи чапи боло кушода мешавад, шумо бояд файли моро дар дарахт пайдо кунед ва барои кушодани модул ду маротиба клик кунед. Ин китоб (Ин китоби корӣ).

Агар шумо ин равзанаро дар муҳаррири Visual Basic набинед, шумо метавонед онро тавассути меню кушоед Намоиш — Explorer Project.

Дар равзанаи модуле, ки кушода мешавад, коркардкунандаи рӯйдодҳои кушодаи китобро бо интихоби он аз рӯйхатҳои афтанда дар боло илова кунед Китоби корӣ и кушоданмутаносибан:

Сари вақт иҷро кардани макрос

Шаблони тартиб бояд дар экран пайдо шавад. Китоби корӣ_Кушода, ки дар байни сатрхо Зери хусусӣ и End Sub ва шумо бояд он фармонҳои VBA-ро ворид кунед, ки ҳангоми кушодани ин китоби кории Excel, вақте ки Барнома онро мувофиқи ҷадвал мекушояд, бояд ба таври худкор иҷро шаванд. Инҳоянд баъзе имконоти муфид барои overclocking:

  • ThisWorkbook.RefreshAll – Ҳама дархостҳои додаҳои беруна, дархостҳои Power Query ва Ҷадвалҳои ҷамъбастиро нав мекунад. Варианти ҳамаҷониба. Танҳо фаромӯш накунед, ки ба таври нобаёнӣ ба пайвастшавӣ ба маълумоти беруна иҷозат диҳед ва истинодҳоро тавассути навсозӣ кунед Файл - Имконот - Маркази эътимод - Имконоти маркази эътимод - мундариҷаи беруна, вагарна, вақте ки шумо китобро мекушоед, огоҳии стандартӣ пайдо мешавад ва Excel бидуни навсозии чизе, баракати шуморо дар шакли пахш кардани тугма интизор мешавад. Мундариҷаро фаъол созед (Фаъол кардани мундариҷа):

    Сари вақт иҷро кардани макрос

  • ActiveWorkbook.Пайвастҳо("Номи_пайваст").Таҷдид кунед — навсозии маълумот дар бораи пайвасти Connection_Name.
  • Варақаҳо («Варақ 5").Ҷадвалҳои ҷамъбаст("Ҷадвали ҷамъбаст1«).PivotCache.Refresh – навсозии ҷадвали ягонаи пивот бо номи Ҷадвали ҷамъбастӣ 1 дар варақ Лавҳаи 5.
  • Ариза. Ҳисоб кунед - аз нав ҳисоб кардани ҳамаи китобҳои кушодаи Excel.
  • Application.CalculateFullRebuild – дубора ҳисобкунии маҷбурии ҳамаи формулаҳо ва барқарор кардани ҳама вобастагӣ байни ячейкаҳо дар ҳамаи китобҳои кории кушода (баробар ба воридкунии дубораи ҳама формулаҳо).
  • Варақаҳои корӣ («Ҳисобот»). Чоп кардан - варақи чоп Суратҳо.
  • Ба MyMacro занг занед – макроси номро иҷро кунед MyMacro.
  • Ин китоби корӣ. Захира – китоби ҷориро захира кунед
  • ThisWorkbooks.SaveAs "D:ArchiveReport" & Иваз кардан(Акнун, ":", "-") & ".xlsx" – китобро ба ҷузвдон захира кунед Д: Архив зери ном Суратҳо бо сана ва вақт ба ном замима карда мешавад.

Агар шумо хоҳед, ки макрос танҳо вақте иҷро шавад, ки файл аз ҷониби Барномасозон соати 5:00 кушода шавад ва на ҳар дафъае, ки корбар дар давоми рӯзи корӣ китоби корро мекушояд, пас илова кардани санҷиши вақт мувофиқ аст, масалан:

Агар Формат(Ҳоло, "с:мм") = "05:00" Пас ThisWorkbook.RefreshAll  

Ҳамааш ҳамин. Фаромӯш накунед, ки китоби кории худро дар формати бо макрофаъолшуда (xlsm ё xlsb) захира кунед ва шумо метавонед Excel-ро бехатар пӯшед ва компютери худро даргиронда ба хона равед. Дар лаҳзаи додашуда (ҳатто агар компютер қулф шуда бошад) Барномасоз Excel-ро оғоз мекунад ва дар он файли муайяншударо мекушояд ва макроси мо амалҳои барномарезишударо иҷро мекунад. Ва шумо дар бистар лаззат мебаред, вақте ки ҳисоботи вазнини шумо ба таври худкор аз нав ҳисоб карда мешавад - зебоӣ! 🙂

  • Макросҳо чист, чӣ тавр истифода бурдани онҳо, ба куҷо ворид кардани рамзи Visual Basic дар Excel
  • Чӣ тавр иловаи макросҳои худро барои Excel эҷод кардан мумкин аст
  • Чӣ тавр истифода бурдани китоби шахсии макросҳо ҳамчун китобхона барои макросҳои худ дар Excel

Дин ва мазҳаб