Makro õigeaegne käivitamine

Praktikas väga levinud juhtum: peate teatud ajal või teatud sagedusega käivitama ühe või mitu oma makrot. Näiteks on teil suur ja raske aruanne, mida värskendatakse pool tundi ja soovite värskenduse käivitada pool tundi enne hommikul tööle jõudmist. Või on teil makro, mis peaks automaatselt teatud sagedusega töötajatele e-kirju välja saatma. Või soovite PivotTable-liigendtabeliga töötades, et seda värskendataks käigult iga 10 sekundi järel ja nii edasi.

Vaatame, milline on Exceli ja Windowsi võime seda rakendada.

Makro käitamine etteantud sagedusel

Lihtsaim viis seda teha on kasutada sisseehitatud VBA meetodit Application.OnTimeSee, mis käivitab määratud makro määratud ajal. Mõistame seda praktilise näitega.

Avage Visual Basicu redaktor vahekaardil oleva samanimelise nupuga arendaja (Arendaja) või klaviatuuri otsetee muu+F11, sisestage menüü kaudu uus moodul Sisesta – moodul ja kopeerige sinna järgmine kood:

Dim TimeToRun 'globaalne muutuja, kuhu salvestatakse järgmine käitusaeg lahter A1 juhusliku värviga :) Kutsu NextRun 'käivita NextRun makro järgmise tööaja määramiseks End Sub 'see makro määrab põhimakro järgmise käitamise aja Sub NextRun() TimeToRun = Now + TimeValue("56: 1:00") 'lisage praegusele ajale 00 sekundit Application.OnTime TimeToRun, "MyMacro" 'ajastage järgmine käitamine End Sub 'makro, et alustada kordusjada Sub Start() Call NextRun End Sub 'makro kordusjada peatamiseks Sub Finish() Application.OnTime TimeToRun, "MyMacro", , False End Sub  

Mõtleme välja, mis siin on.

Esiteks vajame muutujat, mis salvestab meie makro järgmise käitamise aja – ma nimetasin seda TimeToRun. Pange tähele, et selle muutuja sisu peab olema kättesaadav kõigile meie järgmistele makrodele, seega peame selle tegema globaalnest deklareerida mooduli alguses enne esimest alla.

Järgmine on meie peamine makro MinuMakro, mis täidab põhiülesande – arvutab raamat meetodil ümber Rakendus.Arvuta. Selguse huvides lisasin lahtrisse A1 lehele valemi =TDATE(), mis kuvab kuupäeva ja kellaaega – ümberarvutamisel uuendatakse selle sisu otse meie silme all (lihtsalt lülitage lahtris sekundite kuvamine sisse vorming). Lisalõbu pärast lisasin makrole ka käsu täita lahter A1 juhuslikult valitud värviga (värvikoodiks on täisarv vahemikus 0..56, mille genereerib funktsioon Rnd ja ümardab täisarvu funktsioonini Int).

Makro NextRun lisab eelmisele väärtusele TimeToRun Veel 3 sekundit ja seejärel ajastab põhimakro järgmise käitamise MinuMakro selleks uueks ajaks. Muidugi saate praktikas kasutada mis tahes muid vajalikke ajavahemikke, määrates funktsiooni argumendid TimeValue vormingus hh:mm:ss.

Ja lõpuks, mugavuse huvides, on lisatud rohkem järjestuse käivitamise makrosid. Avaleht ja selle valmimine lõpp. Viimane kasutab järjestuse katkestamiseks neljandat meetodi argumenti. Õigel ajal võrdne Vale.

Kokku, kui käivitate makro Avaleht, siis kogu see karussell keerleb ja me näeme lehel järgmist pilti:

Saate jada peatada, käivitades vastavalt makro lõpp. Mugavuse huvides saate käsu abil määrata mõlemale makrole kiirklahvid Makrod – Valikud tab arendaja (Arendaja – makrod – valikud).

Makro käivitamine ajakava alusel

Loomulikult on kõik ülalkirjeldatud võimalik ainult siis, kui teil on Microsoft Excel töötatud ja meie fail on selles avatud. Vaatame nüüd keerulisemat juhtumit: peate käivitama Exceli etteantud ajakava järgi, näiteks iga päev kell 5:00, avama selles suure ja keeruka aruande ning värskendama kõik selles olevad ühendused ja päringud, et see olge selleks ajaks valmis, kui tööle jõuame 🙂

Sellises olukorras on parem kasutada Windowsi ajakava – mis tahes Windowsi versioonile spetsiaalselt sisseehitatud programm, mis suudab teatud toiminguid ajakava järgi teha. Tegelikult kasutate seda juba teadmata, kuna teie arvuti kontrollib regulaarselt värskendusi, laadib alla uusi viirusetõrjeandmebaase, sünkroonib pilvekaustasid jne. See kõik on planeerija töö. Seega on meie ülesanne lisada olemasolevatele ülesannetele veel üks, mis käivitab Exceli ja avab selles määratud faili. Ja me riputame üritusele oma makro Töövihik_Avatud see fail – ja probleem on lahendatud.

Hoiatan kohe, et ajakavaga töötamine võib nõuda kõrgemaid kasutajaõigusi, nii et kui te ei leia kontoris oma tööarvutis allpool kirjeldatud käske ja funktsioone, võtke abi saamiseks ühendust oma IT-spetsialistidega.

Planeerija käivitamine

Nii et käivitame ajakava. Selleks saate teha järgmist.

  • Paremklõpsake nuppu Avaleht Ja vali Computer Management (Arvutihaldus)
  • Valige juhtpaneelil: Administreerimine – ülesannete ajakava (Juhtpaneel — haldustööriistad — ülesannete plaanija)
  • Valige peamenüüst Start – tarvikud – süsteemitööriistad – ülesannete plaanija
  • Vajutage kiirklahvi võit+R, sisenema taskschd.msc ja vajutage sisene

Ekraanile peaks ilmuma järgmine aken (mul on ingliskeelne versioon, kuid teil võib olla ka versioon):

Makro õigeaegne käivitamine

Looge ülesanne

Uue ülesande loomiseks lihtsa samm-sammult viisardi abil klõpsake lingil Looge lihtne ülesanne (Loo põhiülesanne) paremal paneelil.

Viisardi esimesel sammul sisestage loodava ülesande nimi ja kirjeldus:

Makro õigeaegne käivitamine

Klõpsake nuppu järgmine (Järgmine) ja järgmises etapis valime päästiku – käivitussageduse või sündmuse, mis käivitab meie ülesande (näiteks arvuti sisselülitamine):

Makro õigeaegne käivitamine

Kui valisite Iga päev (Iga päev), siis järgmises etapis peate valima kindla kellaaja, jada alguskuupäeva ja sammu (iga 2. päev, 5. päev jne):

Makro õigeaegne käivitamine

Järgmine samm on toimingu valimine – Käivitage programm (Käivitage programm):

Makro õigeaegne käivitamine

Ja lõpuks, kõige huvitavam on see, mida täpselt tuleb avada:

Makro õigeaegne käivitamine

aasta Programm või skript (Programm/skript) tuleb sisestada Microsoft Exceli tee programmina ehk otse Exceli täitmisfaili. Erinevates Windowsi ja Office'i versioonidega arvutites võib see fail olla erinevates kaustades, seega on siin mõned viisid selle asukoha leidmiseks.

  • Paremklõpsake ikoonil (otseteel), et käivitada Excel töölaual või tegumiribal ja valida käsk materjalid (Atribuudid)ja kopeerige avanevas aknas realt tee sihtmärk:

    Makro õigeaegne käivitamine                      Makro õigeaegne käivitamine

  • Avage mis tahes Exceli töövihik ja seejärel avage Task Manager (Tegumihaldur) surudes Ctrl+muu+alates ja paremklõpsates real Microsoft Excel, valige käsk materjalid (Atribuudid). Avanevas aknas saate kopeerida tee, unustamata lisada sellele kaldkriipsu ja EXCEL.EXE-i lõpus:

    Makro õigeaegne käivitamine              Makro õigeaegne käivitamine

  • Avage Excel, avage kiirklahviga Visual Basicu redaktor muu+F11, avatud paneel Vahetu kombinatsioon Ctrl+G, sisestage sinna käsk:

    ? Rakendus. Tee

    … ja klõpsake sisene

    Makro õigeaegne käivitamine

    Kopeerige saadud tee, unustamata lisada sellele kaldkriipsu ja EXCEL.EXE-i lõpus.

aasta Argumentide lisamine (valikuline) (Lisa argumente (valikuline)) peate sisestama raamatu täieliku tee makroga, mida tahame avada.

Kui kõik on sisestatud, klõpsake nuppu järgmine ja siis lõpp (Lõpetama). Ülesanne tuleks lisada üldnimekirja:

Makro õigeaegne käivitamine

Loodud ülesannet on mugav hallata paremal asuvate nuppude abil. Siin saate ülesannet testida, käivitades selle kohe (jookse)määratud aega ootamata. Saate ülesande ajutiselt deaktiveerida (Keela)nii et see ei tööta teatud ajaks, näiteks teie puhkuseks. Noh, parameetreid (kuupäevad, kellaaeg, faili nimi) saate alati nupu kaudu muuta materjalid (Atribuudid).

Faili avamiseks lisage makro

Nüüd jääb üle meie raamatusse riputada faili avamise sündmusel vajaliku makro käivitamine. Selleks avage raamat ja minge kiirklahvi abil Visual Basicu redaktorisse muu+F11 või nuppe Visual Basic tab arendaja (Arendaja). Üleval vasakus nurgas avanevas aknas peate leidma puust meie faili ja mooduli avamiseks topeltklõpsama See raamat (See tööraamat).

Kui te seda akent Visual Basicu redaktoris ei näe, saate selle avada menüü kaudu Vaade — Project Explorer.

Lisage avanevas mooduli aknas raamatu avamise sündmuste töötleja, valides selle ülaosas olevatest ripploenditest Töövihik и avatudvastavalt:

Makro õigeaegne käivitamine

Ekraanile peaks ilmuma protseduuri mall. Töövihik_Avatud, kus ridade vahel Privaatne alam и End Sub ja peate sisestama need VBA käsud, mis peaksid selle Exceli töövihiku avamisel automaatselt täitma, kui ajakava graafiku järgi avab. Siin on mõned kasulikud võimalused kiirendamiseks:

  • ThisWorkbook.RefreshAll – Värskendab kõiki väliseid andmepäringuid, Power Query päringuid ja PivotTable-liigendtabeleid. Kõige mitmekülgsem variant. Ärge unustage vaikimisi lubada ühendusi väliste andmetega ja värskendada linke kaudu Fail – Valikud – Usalduskeskus – Usalduskeskuse valikud – Välissisu, vastasel juhul ilmub raamatu avamisel standardhoiatus ja Excel ootab ilma midagi värskendamata teie õnnistust nupule klõpsamise näol Luba sisu (Luba sisu):

    Makro õigeaegne käivitamine

  • ActiveWorkbook.Connections(“ühenduse_nimi”). Värskenda — ühenduse Connection_Name andmete värskendamine.
  • Sheets (“Sheet5“).PivotTables(“PivotTable1«).PivotCache.Värskenda – ühe nimega pivot-tabeli värskendamine PivotTable1 lehel Sheet5.
  • Rakendus.Arvuta – kõigi avatud Exceli töövihikute ümberarvutamine.
  • Application.CalculateFullRebuild – kõigi valemite sunnitud ümberarvutamine ja kõigi avatud töövihikute lahtrite vaheliste sõltuvuste taastamine (võrdne kõigi valemite uuesti sisestamisega).
  • Töölehed ("Aruanne").Prindi välja - prindileht Fotod.
  • Helista MyMacrole – käivitage makro nimega MinuMakro.
  • See töövihik.Salvesta – salvestage praegune raamat
  • ThisWorkbooks.SaveAs "D:ArchiveReport" & Replace(Now, ":", "-") & ".xlsx" – salvestage raamat kausta D: Arhiiv nime all Fotod nimele lisatud kuupäev ja kellaaeg.

Kui soovite, et makro käivituks ainult siis, kui ajakava avab faili kell 5:00, mitte iga kord, kui kasutaja tööpäeva jooksul töövihikut avab, siis on mõttekas lisada ajakontroll, näiteks:

Kui Format(Now, "hh:mm") = "05:00", siis ThisWorkbook.RefreshAll  

See on kõik. Ärge unustage salvestada oma töövihikut makrotoega vormingus (xlsm või xlsb) ja saate Exceli turvaliselt sulgeda ja koju minna, jättes arvuti sisselülitatuks. Antud hetkel (isegi kui arvuti on lukus) käivitab ajakava Exceli ja avab selles määratud faili ning meie makro sooritab programmeeritud toimingud. Ja sina luksusel voodis, kui teie raske aruanne automaatselt ümber arvutatakse – ilu! 🙂

  • Mis on makrod, kuidas neid kasutada, kuhu Excelis Visual Basicu kood sisestada
  • Kuidas luua Exceli jaoks oma makro lisandmoodul
  • Kuidas kasutada isiklikku makro töövihikut oma makrode raamatukoguna Excelis

Jäta vastus