Að keyra macro á réttum tíma

Mjög algengt tilvik í reynd: þú þarft að keyra eitt eða fleiri af fjölvi þínum á tilteknum tíma eða á ákveðinni tíðni. Til dæmis ertu með stóra og þunga skýrslu sem uppfærist hálftíma og þú vilt keyra uppfærsluna hálftíma áður en þú kemur í vinnuna á morgnana. Eða þú ert með fjölvi sem ætti sjálfkrafa að senda tölvupóst til starfsmanna á tiltekinni tíðni. Eða, þegar þú vinnur með PivotTable, vilt þú að hún uppfærist á flugi á 10 sekúndna fresti, og svo framvegis.

Við skulum skoða hvað Excel og Windows hafa getu til að útfæra þetta.

Að keyra fjölvi á tiltekinni tíðni

Auðveldasta leiðin til að gera þetta er að nota innbyggðu VBA aðferðina Application.OnTimeAn sem keyrir tilgreinda fjölvi á tilteknum tíma. Við skulum skilja þetta með hagnýtu dæmi.

Opnaðu Visual Basic ritstjórann með hnappinum með sama nafni á flipanum verktaki (hönnuður) eða flýtilykla Alt+F11, settu inn nýja einingu í gegnum valmyndina Settu inn - Eining og afritaðu eftirfarandi kóða þangað:

Dimma TimeToRun 'global breyta þar sem næsti keyrslutími er geymdur 'þetta er aðalfjölvi Sub MyMacro() Application.Reiknaðu 'endurreikna bókina Range("A1").Interior.ColorIndex = Int(Rnd() * 56) 'fill reit A1 með handahófskenndum lit :) Kallaðu NextRun 'keyrðu NextRun fjölvi til að stilla næsta keyrslutíma End Sub 'þetta fjölva setur tímann fyrir næstu keyrslu á aðalfjölva Sub NextRun() TimeToRun = Now + TimeValue("00: 00:03") 'bættu 3 sekúndum við núverandi tíma Application.OnTime TimeToRun, "MyMacro" 'tímasettu næstu keyrslu End Sub 'makró til að hefja endurtekningarröðina Sub Start() Hringdu í NextRun End Sub 'makró til að stöðva endurtekningarröðina Sub Finish() Application.OnTime TimeToRun, "MyMacro", , False End Sub  

Við skulum reikna út hvað er hvað hér.

Í fyrsta lagi þurfum við breytu sem geymir tímann fyrir næstu keyrslu á fjölvi okkar - ég kallaði það TimeToRun. Vinsamlegast athugaðu að innihald þessarar breytu verður að vera tiltækt fyrir allar síðari fjölva okkar, svo við þurfum að gera það Alþjóðlegt, þ.e. lýstu yfir strax í upphafi einingarinnar á undan þeirri fyrstu Sub.

Næst kemur aðal macro okkar MyMacro, sem mun framkvæma aðalverkefnið - að endurreikna bókina með aðferðinni Umsókn.Reikna. Til að gera það skýrara bætti ég formúlunni =TDATE() við blaðið í reit A1, sem sýnir dagsetningu og tíma - þegar það er endurreiknað verður innihald hennar uppfært rétt fyrir augum okkar (kveiktu bara á sekúnduskjánum í reitnum sniði). Til að auka skemmtun bætti ég líka við fjölva skipunina um að fylla reit A1 með af handahófi völdum lit (litakóðinn er heil tala á bilinu 0..56, sem er mynduð af fallinu Umf og námundar upp í heiltölufall Int).

Macro NextRun bætir við fyrra gildi TimeToRun 3 sekúndur í viðbót og skipuleggur síðan næstu keyrslu á aðalfjölva MyMacro fyrir þennan nýja tíma. Auðvitað, í reynd, geturðu notað hvaða önnur tímabil sem þú þarft með því að stilla aðgerðarröksemdirnar Tímagildi í formi hh:mm:ss.

Og að lokum, bara til þæginda, hefur fleiri röð ræsingarfjölva verið bætt við. Heim og frágangi þess Ljúka. Sá síðasti notar fjórðu aðferðarrök til að rjúfa röðina. Á tíma jöfn False.

Samtals ef þú keyrir macro Heim, þá mun þessi hringekkja snúast og við munum sjá eftirfarandi mynd á blaðinu:

Þú getur stöðvað röðina með því að keyra, í sömu röð, fjölvi Ljúka. Til þæginda geturðu úthlutað flýtilykla fyrir báðar fjölva með því að nota skipunina Fjölvi - Valkostir flipi verktaki (Hönnuður - Fjölvi - Valkostir).

Að keyra makró samkvæmt áætlun

Auðvitað er allt sem lýst er hér að ofan aðeins mögulegt ef þú ert með Microsoft Excel í gangi og skráin okkar er opin í henni. Lítum nú á flóknara mál: þú þarft að keyra Excel samkvæmt tiltekinni tímaáætlun, til dæmis alla daga klukkan 5:00, opna þar stóra og flókna skýrslu og uppfæra allar tengingar og fyrirspurnir í henni þannig að Vertu tilbúinn þegar við komum í vinnuna 🙂

Í slíkum aðstæðum er betra að nota Windows tímaáætlun – forrit sem er sérstaklega innbyggt í hvaða útgáfu sem er af Windows sem getur framkvæmt tilteknar aðgerðir samkvæmt áætlun. Reyndar ertu nú þegar að nota það án þess að vita það, vegna þess að tölvan þín leitar reglulega að uppfærslum, hleður niður nýjum vírusvarnargagnagrunnum, samstillir skýjamöppur osfrv. Þetta er allt verk tímaáætlunarmannsins. Svo verkefni okkar er að bæta við núverandi verkefni öðru sem mun ræsa Excel og opna tilgreinda skrá í henni. Og við munum hengja macro okkar á viðburðinn Vinnubók_Opin þessa skrá – og vandamálið er leyst.

Ég vil vara þig strax við því að vinna með tímaáætlun gæti krafist háþróaðra notendaréttinda, svo ef þú finnur ekki skipanirnar og aðgerðirnar sem lýst er hér að neðan á vinnutölvunni þinni á skrifstofunni skaltu hafa samband við upplýsingatæknisérfræðinga þína til að fá aðstoð.

Ræsir tímaáætlun

Svo skulum við byrja á tímaáætluninni. Til að gera þetta geturðu annað hvort:

  • Hægri smelltu á hnappinn Home Og veldu Tölvustjórnun (Tölvustjórnun)
  • Veldu í stjórnborði: Stjórnun – Verkefnaskrá (Stjórnborð — Stjórnunarverkfæri — Verkefnaáætlun)
  • Veldu úr aðalvalmyndinni Byrja – Aukabúnaður – Kerfisverkfæri – Verkefnaáætlun
  • Ýttu á flýtilykla Win+R, koma inn taskschd.msc og ýttu Sláðu inn

Eftirfarandi gluggi ætti að birtast á skjánum (ég er með enska útgáfu, en þú getur líka haft útgáfu):

Að keyra macro á réttum tíma

Búðu til verkefni

Til að búa til nýtt verkefni með einföldum skref-fyrir-skref töframanni, smelltu á hlekkinn Búðu til einfalt verkefni (Búa til grunnverkefni) í hægra spjaldinu.

Í fyrsta skrefi töframannsins skaltu slá inn nafn og lýsingu á verkefninu sem á að búa til:

Að keyra macro á réttum tíma

Smelltu á hnappinn Næstu (Næst) og í næsta skrefi veljum við kveikju – ræsingartíðni eða atburði sem mun ræsa verkefni okkar (til dæmis að kveikja á tölvunni):

Að keyra macro á réttum tíma

Ef þú valdir Daily (Daglega), þá þarftu í næsta skrefi að velja ákveðinn tíma, upphafsdag raðarinnar og skref (annan hvern dag, 2. dag o.s.frv.):

Að keyra macro á réttum tíma

Næsta skref er að velja aðgerð - Keyrðu forritið (Start forrit):

Að keyra macro á réttum tíma

Og að lokum, það áhugaverðasta er hvað nákvæmlega þarf að opna:

Að keyra macro á réttum tíma

Í Forrit eða handrit (dagskrá/handrit) þú þarft að slá inn slóðina að Microsoft Excel sem forriti, þ.e. beint í Excel executable. Á mismunandi tölvum með mismunandi útgáfur af Windows og Office getur þessi skrá verið í mismunandi möppum, svo hér eru nokkrar leiðir fyrir þig til að komast að staðsetningu hennar:

  • Hægrismelltu á táknið (flýtileið) til að ræsa Excel á skjáborðinu eða á verkefnastikunni og veldu skipunina efni (Eignir), og síðan í glugganum sem opnast, afritaðu slóðina úr línunni Markmál:

    Að keyra macro á réttum tíma                      Að keyra macro á réttum tíma

  • Opnaðu hvaða Excel vinnubók sem er og opnaðu síðan Verkefnisstjóri (Verkefnastjóri) ýta Ctrl+Alt+Frá og með því að hægrismella á línuna Microsoft Excel, veldu skipun efni (Eignir). Í glugganum sem opnast geturðu afritað slóðina, ekki gleyma að bæta skástrik við það og EXCEL.EXE í lokin:

    Að keyra macro á réttum tíma              Að keyra macro á réttum tíma

  • Opnaðu Excel, opnaðu Visual Basic ritilinn með flýtilykla Alt+F11, opið spjaldið Strax sambland af Ctrl+G, sláðu inn skipunina í það:

    ? Umsókn.Slóð

    … og smelltu á Sláðu inn

    Að keyra macro á réttum tíma

    Afritaðu leiðina sem myndast, ekki gleyma að bæta skástrik við það og EXCEL.EXE í lokin.

Í Bæta við rökum (valfrjálst) (Bæta við rökum (valfrjálst)) þú þarft að setja inn alla leiðina að bókinni með makróinu sem við viljum opna.

Þegar allt er slegið inn, smelltu síðan Næstu og þá Ljúka (Klára). Verkefninu ætti að bæta við almenna listann:

Að keyra macro á réttum tíma

Það er þægilegt að stjórna búið verkefni með því að nota hnappana til hægri. Hér getur þú prófað verkefnið með því að keyra það strax (hlaupa)án þess að bíða eftir tilteknum tíma. Þú getur gert verkefni tímabundið óvirkt (Slökkva)þannig að það hættir að keyra í ákveðinn tíma, eins og fríið þitt. Jæja, þú getur alltaf breytt breytunum (dagsetningar, tími, skráarheiti) í gegnum hnappinn efni (Eignir).

Bættu við fjölvi til að opna skrá

Nú er eftir að hengja í bókina okkar kynningu á fjölvi sem við þurfum á skráaropnunarviðburðinum. Til að gera þetta, opnaðu bókina og farðu í Visual Basic ritilinn með því að nota flýtilykla Alt+F11 eða hnappa Visual Basic flipi verktaki (hönnuður). Í glugganum sem opnast í efra vinstra horninu þarftu að finna skrána okkar á trénu og tvísmella til að opna eininguna Þessi bók (Þessi vinnubók).

Ef þú sérð ekki þennan glugga í Visual Basic ritlinum geturðu opnað hann í gegnum valmyndina Skoða — Project Explorer.

Í einingaglugganum sem opnast, bætið við opna viðburðastjórnun með því að velja hann úr fellilistanum efst Vinnubók и Opna, hver um sig:

Að keyra macro á réttum tíma

Verklagssniðmát ætti að birtast á skjánum. Vinnubók_Opin, hvar á milli línanna Einkaundir и End Sub og þú þarft að setja inn þessar VBA skipanir sem ættu að vera sjálfkrafa framkvæmdar þegar þessi Excel vinnubók er opnuð, þegar tímaáætlun opnar hana samkvæmt áætluninni. Hér eru nokkrir gagnlegir valkostir til að yfirklukka:

  • This Workbook.RefreshAll - Endurnýjar allar ytri gagnafyrirspurnir, Power Query fyrirspurnir og PivotTables. Fjölhæfasti kosturinn. Bara ekki gleyma að leyfa tengingar við ytri gögn sjálfgefið og uppfæra tengla í gegnum Skrá – Valkostir – Traustamiðstöð – Valmöguleikar Traustamiðstöðvar – Ytra efni, annars, þegar þú opnar bókina, birtist staðlað viðvörun og Excel, án þess að uppfæra neitt, mun bíða eftir blessun þinni í formi þess að smella á hnappinn Virkjaðu efni (Virkja efni):

    Að keyra macro á réttum tíma

  • ActiveWorkbook.Connections(“Connection_Name”). Endurnýja — uppfæra gögn um Connection_Name tenginguna.
  • Sheets(“Sheet5“).PivotTables(“PivotTable1«).PivotCache.Refresh – að uppfæra eina snúningstöflu sem heitir PivotTable1 á blaðinu Sheet5.
  • Umsókn.Reikna – endurútreikningur á öllum opnum Excel vinnubókum.
  • Application.CalculateFullRebuild – þvingaður endurútreikningur á öllum formúlum og endurreisn allra ósjálfstæðis milli frumna í öllum opnum vinnubókum (jafngildir því að slá inn allar formúlur aftur).
  • Vinnublöð ("Report"). Prenta út - prenta blað Myndir.
  • Hringdu í MyMacro – keyra fjölvi sem heitir MyMacro.
  • Þessi vinnubók.Vista – vistaðu núverandi bók
  • ThisWorkbooks.SaveAs “D:ArchiveReport” & Replace(Now, “:”, “-“) & “.xlsx” – vistaðu bókina í möppu D: Skjalasafn undir nafninu Myndir með dagsetningu og tíma við nafnið.

Ef þú vilt að fjölvi sé keyrt aðeins þegar skráin er opnuð af tímaáætluninni klukkan 5:00, og ekki í hvert skipti sem notandinn opnar vinnubókina á vinnudeginum, þá er skynsamlegt að bæta við tímaskoðun, til dæmis:

Ef Format(Now, "hh:mm") = "05:00" þá ThisWorkbook.RefreshAll  

Það er allt og sumt. Ekki gleyma að vista vinnubókina þína á makró-virku sniði (xlsm eða xlsb) og þú getur örugglega lokað Excel og farið heim og látið tölvuna þína vera kveikt. Á tilteknu augnabliki (jafnvel þó að tölvan sé læst) mun tímaáætlun ræsa Excel og opna tilgreinda skrá í henni og fjölvi okkar mun framkvæma forritaðar aðgerðir. Og þú munt gleðjast í rúminu á meðan þunga skýrslan þín er sjálfkrafa endurreiknuð - fegurð! 🙂

  • Hvað eru fjölvi, hvernig á að nota þau, hvar á að setja Visual Basic kóða inn í Excel
  • Hvernig á að búa til þína eigin fjölvaviðbót fyrir Excel
  • Hvernig á að nota Personal Macro Workbook sem bókasafn fyrir fjölvi í Excel

Skildu eftir skilaboð