Pagdagan sa usa ka macro sa oras

Usa ka kasagaran nga kaso sa praktis: kinahanglan nimo nga modagan ang usa o daghan pa sa imong mga macro sa usa ka gihatag nga oras o sa usa ka piho nga frequency. Pananglitan, aduna kay dako ug bug-at nga report nga nag-update tunga sa oras ug gusto nimong ipadagan ang update tunga sa oras sa dili pa moabot sa trabahoan sa buntag. O ikaw adunay usa ka macro nga kinahanglan awtomatikong magpadala sa mga email sa mga empleyado sa usa ka piho nga frequency. O, kung nagtrabaho sa usa ka PivotTable, gusto nimo nga kini ma-update matag 10 segundos, ug uban pa.

Atong tan-awon kung unsa ang Excel ug Windows nga adunay katakus sa pagpatuman niini.

Pagpadagan sa usa ka macro sa gihatag nga frequency

Ang pinakasayon ​​nga paagi sa pagbuhat niini mao ang paggamit sa built-in nga VBA nga pamaagi Aplikasyon.OnTimeUsa nga nagpadagan sa gipiho nga macro sa gitakda nga oras. Atong sabton kini uban ang praktikal nga pananglitan.

Ablihi ang Visual Basic editor gamit ang buton nga parehas nga ngalan sa tab developer (Developer) o keyboard shortcut alt+F11, pagsal-ot og bag-ong module pinaagi sa menu Isulod – Module ug kopyaha ang mosunod nga code didto:

Dim TimeToRun 'global variable diin ang sunod nga run time gitipigan 'kini ang nag-unang macro Sub MyMacro() Application.Calculate 'recalculate the book Range("A1").Interior.ColorIndex = Int(Rnd() * 56) 'fill cell A1 nga adunay random nga kolor :) Tawga ang NextRun 'pagdagan ang NextRun macro aron itakda ang sunod nga run time End Sub 'kini nga macro nagtakda sa oras alang sa sunod nga pagdagan sa main macro Sub NextRun() TimeToRun = Now + TimeValue("00: 00:03") 'pagdugang og 3 segundos sa kasamtangan nga oras Application.OnTime TimeToRun, "MyMacro" 'iskedyul sa sunod nga run End Sub 'macro aron masugdan ang repeat sequence Sub Start() Call NextRun End Sub 'macro to stop the repeat sequence Sub Finish() Application.OnTime TimeToRun, "MyMacro", , False End Sub  

Atong hisgotan kung unsa dinhi.

Una, kinahanglan namon ang usa ka variable nga magtipig sa oras sa sunod nga pagdagan sa among macro - gitawag ko kini TimeToRun. Palihug timan-i nga ang mga sulud niini nga variable kinahanglan nga magamit sa tanan namong sunod nga mga macro, mao nga kinahanglan namon nga buhaton kini. global, ie ipahayag sa sinugdanan sa module sa wala pa ang una sub.

Sunod moabut ang among panguna nga macro AkongMacro, nga maghimo sa nag-unang tahas - aron makalkula pag-usab ang libro gamit ang pamaagi Aplikasyon.Kalkulahin. Aron mas klaro, akong gidugang ang pormula =TDATE() sa sheet sa cell A1, nga nagpakita sa petsa ug oras - kung kalkulado pag-usab, ang mga sulod niini ma-update sa atubangan sa atong mga mata (i-on lang ang display sa mga segundo sa cell format). Alang sa dugang nga kalingawan, gidugang usab nako sa macro ang sugo nga pun-on ang cell A1 sa usa ka random nga gipili nga kolor (ang color code usa ka integer sa range 0..56, nga gihimo sa function. Rnd ug mga rounds ngadto sa usa ka integer function Int).

Macro SunodPagdagan midugang sa miaging bili TimeToRun 3 pa ka segundo ug dayon i-iskedyul ang sunod nga pagdagan sa main macro AkongMacro alang niining bag-ong panahon. Siyempre, sa praktis, mahimo nimong gamiton ang bisan unsang ubang mga agwat sa oras nga imong gikinahanglan pinaagi sa pagtakda sa mga argumento sa function TimeValue sa pormat hh:mm:ss.

Ug sa katapusan, alang lamang sa kasayon, dugang nga sequence launch macros ang gidugang. Home ug ang pagkompleto niini Humana. Ang naulahi naggamit sa ika-upat nga paagi nga argumento aron maputol ang pagkasunod-sunod. Sa panahon managsama bakak nga mga.

Total kung imong gipadagan ang macro Home, unya kining tibuok carousel magtuyok, ug atong makita ang mosunod nga hulagway sa panid:

Mahimo nimong hunongon ang pagkasunodsunod pinaagi sa pagpadagan, matag usa, ang macro Humana. Para sa kasayon, mahimo nimong i-assign ang mga keyboard shortcut sa duha ka macro gamit ang command Macros - Mga Opsyon tab developer (Developer — Macros — Opsyon).

Pagpadagan sa usa ka macro sa usa ka iskedyul

Siyempre, ang tanan nga gihulagway sa ibabaw posible lamang kung ikaw adunay Microsoft Excel nga nagdagan ug ang among file bukas niini. Karon atong tan-awon ang usa ka mas komplikado nga kaso: kinahanglan nimo nga modagan ang Excel sumala sa usa ka gihatag nga iskedyul, pananglitan, matag adlaw sa 5:00, ablihi ang usa ka dako ug komplikado nga taho niini ug i-update ang tanan nga koneksyon ug mga pangutana niini aron kini mahimo. pag-andam sa oras nga kita moabut sa trabaho 🙂

Sa ingon nga sitwasyon, mas maayo nga gamiton Windows Scheduler – usa ka programa nga espesyal nga gitukod sa bisan unsang bersyon sa Windows nga makahimo sa piho nga mga aksyon sa usa ka iskedyul. Sa tinuud, gigamit na nimo kini nga wala nahibal-an, tungod kay ang imong PC kanunay nga nagsusi alang sa mga update, nag-download sa mga bag-ong database sa anti-virus, nag-synchronize sa mga folder sa panganod, ug uban pa. Kini ang tanan nga buhat sa Scheduler. Mao nga ang among tahas mao ang pagdugang sa naa na nga mga buluhaton sa lain nga maglansad sa Excel ug ablihan ang gitakda nga file niini. Ug among ibitay ang among macro sa panghitabo Workbook_Open kini nga file - ug ang problema nasulbad.

Gusto nako nga pasidan-an ka dayon nga ang pagtrabaho kauban ang Scheduler mahimong magkinahanglan og advanced nga mga katungod sa tiggamit, busa kung dili nimo makit-an ang mga mando ug mga gimbuhaton nga gihulagway sa ubos sa imong computer sa trabaho sa opisina, kontaka ang imong mga espesyalista sa IT alang sa tabang.

Paglansad sa Scheduler

Busa atong sugdan ang Scheduler. Aron mahimo kini, mahimo nimo:

  • Pag-right click sa buton pagsugod ug pagpili Pagdumala sa Computer (Pagdumala sa kompyuter)
  • Pagpili sa Control Panel: Pagdumala - Task Scheduler (Control Panel — Administrative Tools — Task Scheduler)
  • Pagpili gikan sa main menu Pagsugod - Mga Kagamitan - Mga Tool sa Sistema - Task scheduler
  • Pagpugong sa shortcut sa keyboard win+R, pagsulud taskschd.msc ug sa press Pagsulod

Ang mosunod nga bintana kinahanglan nga makita sa screen (ako adunay English nga bersyon, apan mahimo ka usab nga adunay usa ka bersyon):

Pagdagan sa usa ka macro sa oras

Paghimo usa ka buluhaton

Aron makahimo og bag-ong buluhaton gamit ang usa ka yano nga step-by-step wizard, i-klik ang link Paghimo og usa ka yano nga buluhaton (Paghimo Batakang Buluhaton) sa tuo nga panel.

Sa unang lakang sa wizard, isulod ang ngalan ug paghulagway sa buluhaton nga pagabuhaton:

Pagdagan sa usa ka macro sa oras

Pag-klik sa buton sunod (Sunod) ug sa sunod nga lakang magpili mi og trigger – ang frequency sa paglusad o panghitabo nga maglunsad sa among buluhaton (pananglitan, pag-on sa computer):

Pagdagan sa usa ka macro sa oras

Kung gipili nimo Adlaw-adlaw nga (Adlaw-adlaw), unya sa sunod nga lakang kinahanglan nimo nga magpili usa ka piho nga oras, petsa sa pagsugod sa pagkasunod-sunod ug lakang (matag ika-2 nga adlaw, ika-5 nga adlaw, ug uban pa):

Pagdagan sa usa ka macro sa oras

Ang sunod nga lakang mao ang pagpili sa usa ka aksyon - Dagan ang programa (Pagsugod ug programa):

Pagdagan sa usa ka macro sa oras

Ug sa katapusan, ang labing makapaikag nga butang mao kung unsa gyud ang kinahanglan nga ablihan:

Pagdagan sa usa ka macro sa oras

sa Programa o script (Programa/script) kinahanglan ka nga mosulod sa dalan sa Microsoft Excel isip usa ka programa, ie direkta sa Excel executable. Sa lain-laing mga computer nga adunay lain-laing mga bersyon sa Windows ug Office, kini nga file mahimong anaa sa lain-laing mga folder, mao nga ania ang pipila ka mga paagi alang kaninyo sa pagpangita sa iyang nahimutangan:

  • Pag-right-click sa icon (shortcut) aron ilunsad ang Excel sa desktop o sa taskbar ug pilia ang command mga Materyal (Properties), ug dayon sa bintana nga moabli, kopyaha ang agianan gikan sa linya target:

    Pagdagan sa usa ka macro sa oras                      Pagdagan sa usa ka macro sa oras

  • Ablihi ang bisan unsang Excel workbook, dayon ablihi Task Manager (Task Manager) pagduso Ctrl+alt+gikan sa ug pinaagi sa pag-right click sa linya Microsoft Excel, pagpili og sugo mga Materyal (Properties). Sa bintana nga nagbukas, mahimo nimong kopyahon ang agianan, dili kalimot sa pagdugang ug backslash niini ug EXCEL.EXE sa katapusan:

    Pagdagan sa usa ka macro sa oras              Pagdagan sa usa ka macro sa oras

  • Ablihi ang Excel, ablihi ang Visual Basic editor nga adunay keyboard shortcut alt+F11, bukas nga panel Gilayon usa ka kombinasyon sa Ctrl+G, isulod ang sugo niini:

    ? Aplikasyon.Path

    … ug pag-klik sa Pagsulod

    Pagdagan sa usa ka macro sa oras

    Kopyaha ang resulta nga dalan, dili kalimot sa pagdugang ug backslash niini ug EXCEL.EXE sa katapusan.

sa Pagdugang mga argumento (kapilian) (Idugang ang mga argumento (opsyonal)) kinahanglan nimong isulod ang tibuok nga agianan sa libro nga adunay macro nga gusto namong ablihan.

Kung nasulod na ang tanan, dayon i-klik sunod unya Humana (Paghuman). Ang buluhaton kinahanglang idugang sa kinatibuk-ang listahan:

Pagdagan sa usa ka macro sa oras

Kombenyente ang pagdumala sa gibuhat nga buluhaton gamit ang mga buton sa tuo. Dinhi mahimo nimong sulayan ang buluhaton pinaagi sa pagpadagan dayon niini (dagan)nga wala maghulat sa gitakda nga oras. Mahimo nimong temporaryo nga i-deactivate ang usa ka buluhaton (Dili pagdagan)aron kini mohunong sa pagdagan sulod sa usa ka yugto sa panahon, sama sa imong bakasyon. Aw, mahimo nimong usbon ang mga parameter (petsa, oras, ngalan sa file) pinaagi sa buton mga Materyal (Properties).

Pagdugang usa ka macro aron maablihan ang usa ka file

Karon nagpabilin nga ibitay sa among libro ang paglansad sa macro nga kinahanglan namon sa file open event. Aron mahimo kini, ablihi ang libro ug adto sa Visual Basic editor gamit ang keyboard shortcut alt+F11 o mga butones visual Basic tab developer (Developer). Sa bintana nga nagbukas sa taas nga wala nga suok, kinahanglan nimo pangitaon ang among file sa kahoy ug pag-double click aron maablihan ang module Kini nga libro (Kini nga Workbook).

Kung dili nimo makita kini nga bintana sa editor sa Visual Basic, mahimo nimo kini ablihan pinaagi sa menu Tan-awa - Project Explorer.

Sa module window nga moabli, idugang ang book open event handler pinaagi sa pagpili niini gikan sa drop-down list sa ibabaw. Workbook и Open, matag usa:

Pagdagan sa usa ka macro sa oras

Ang usa ka template sa pamaagi kinahanglan nga makita sa screen. Workbook_Open, diin tali sa mga linya Pribado nga Sub и katapusan Sub ug kinahanglan nimong isulod ang mga VBA nga mga sugo nga kinahanglan nga awtomatiko nga ipatuman kung kini nga workbook sa Excel giablihan, kung giablihan kini sa Scheduler sumala sa iskedyul. Ania ang pipila ka mapuslanon nga mga kapilian alang sa overclocking:

  • ThisWorkbook.RefreshAll - Gi-refresh ang tanan nga eksternal nga mga pangutana sa datos, Power Query nga pangutana, ug PivotTable. Ang labing daghag gamit nga kapilian. Ayaw lang kalimti ang pagtugot sa mga koneksyon sa external data pinaagi sa default ug pag-update sa mga link pinaagi sa File – Opsyon – Trust Center – Trust Center Options – External Content, kung dili, kung ablihan nimo ang libro, usa ka sumbanan nga pasidaan ang makita ug ang Excel, nga wala’y pag-update bisan unsa, maghulat alang sa imong panalangin sa porma sa pag-klik sa buton I-enable ang sulod (Enable content):

    Pagdagan sa usa ka macro sa oras

  • ActiveWorkbook.Connections("Connection_Name").Refresh — pag-update sa datos sa koneksyon sa Connection_Name.
  • Mga Palid ("Palid 5").PivotTable("PivotTable1«).PivotCache.Refresh – pag-update sa usa ka pivot table nga ginganlan PivotTable1 sa palid Palid 5.
  • Aplikasyon.Kalkulahin - pagkalkula pag-usab sa tanan nga bukas nga mga workbook sa Excel.
  • Application.CalculateFullRebuild - pinugos nga pagkalkula pag-usab sa tanan nga mga pormula ug pagtukod pag-usab sa tanan nga mga dependency tali sa mga cell sa tanan nga bukas nga mga workbook (katumbas sa pagsulod pag-usab sa tanan nga mga pormula).
  • Worksheets("Report").PrintOut - print sheet Litrato.
  • Tawga ang MyMacro – pagpadagan sa usa ka macro nga ginganlan AkongMacro.
  • ThisWorkbook.Save – i-save ang kasamtangan nga libro
  • ThisWorkbooks.SaveAs “D:ArchiveReport” & Puli(Karon, “:”, “-“) & “.xlsx” – i-save ang libro sa usa ka folder D: Archive sa ilalum sa ngalan Litrato nga adunay petsa ug oras nga gidugang sa ngalan.

Kung gusto nimo nga ang macro ipatuman lamang kung ang file giablihan sa Scheduler sa 5:00 am, ug dili sa matag higayon nga ablihan sa user ang workbook atol sa adlaw sa pagtrabaho, nan makatarunganon ang pagdugang sa usa ka time check, pananglitan:

Kung Format(Karon, "hh:mm") = "05:00" Unya ThisWorkbook.RefreshAll  

Mao ra. Ayaw kalimti nga i-save ang imong workbook sa usa ka macro-enabled format (xlsm o xlsb) ug mahimo nimo nga luwas nga isira ang Excel ug makapauli, gibiyaan ang imong computer. Sa usa ka gutlo (bisan kung ang PC na-lock), ang Scheduler maglunsad sa Excel ug ablihan ang gitakda nga file niini, ug ang among macro maghimo sa mga na-program nga aksyon. Ug magpahayahay ka sa higdaanan samtang ang imong bug-at nga taho awtomatiko nga kalkulado - katahum! 🙂

  • Unsa ang mga macros, kung giunsa kini gamiton, kung diin ibutang ang Visual Basic code sa Excel
  • Giunsa paghimo ang imong kaugalingon nga macro add-in alang sa Excel
  • Giunsa paggamit ang Personal Macro Workbook ingon usa ka librarya alang sa imong mga macro sa Excel

Leave sa usa ka Reply