Makro palaišana laikā

Ļoti izplatīts gadījums praksē: jums ir jāpalaiž viens vai vairāki jūsu makro noteiktā laikā vai noteiktā frekvencē. Piemēram, jums ir liels un smags pārskats, kas tiek atjaunināts pusstundu, un jūs vēlaties palaist atjauninājumu pusstundu pirms ierašanās darbā no rīta. Vai arī jums ir makro, kam vajadzētu automātiski nosūtīt e-pasta ziņojumus darbiniekiem noteiktā biežumā. Vai arī, strādājot ar PivotTable, vēlaties, lai tā tiktu atjaunināta lidojuma laikā ik pēc 10 sekundēm utt.

Apskatīsim, kādas ir Excel un Windows iespējas to ieviest.

Makro palaišana noteiktā frekvencē

Vienkāršākais veids, kā to izdarīt, ir izmantot iebūvēto VBA metodi Application.OnTimeKas palaiž norādīto makro norādītajā laikā. Sapratīsim to ar praktisku piemēru.

Atveriet Visual Basic redaktoru ar tāda paša nosaukuma pogu cilnē attīstītājs (Izstrādātājs) vai īsinājumtaustiņš cits+F11, izvēlnē ievietojiet jaunu moduli Ievietot - modulis un nokopējiet tur šādu kodu:

Dim TimeToRun 'globālais mainīgais, kurā tiek saglabāts nākamais izpildes laiks 'šis ir galvenais makro Sub MyMacro() Application.Calculate 'pārrēķināt grāmatu Range("A1").Interior.ColorIndex = Int(Rnd() * 56) 'aizpildīt šūna A1 ar nejaušu krāsu :) Izsauciet NextRun 'palaidiet NextRun makro, lai iestatītu nākamo izpildes laiku End Sub 'šis makro iestata laiku galvenā makro nākamajai izpildei Sub NextRun() TimeToRun = Now + TimeValue("00: 00:03") 'pievienojiet 3 sekundes pašreizējam laikam Application.OnTime TimeToRun, "MyMacro" 'ieplānojiet nākamo palaišanu End Sub 'makro, lai sāktu atkārtotu secību Sub Start() Izsauciet NextRun End Sub 'makro, lai apturētu atkārtošanas secību Sub Finish() Application.OnTime TimeToRun, "MyMacro", , False End Sub  

Noskaidrosim, kas šeit ir.

Pirmkārt, mums ir nepieciešams mainīgais, kas saglabās mūsu makro nākamās darbības laiku — es to nosaucu TimeToRun. Lūdzu, ņemiet vērā, ka šī mainīgā saturam ir jābūt pieejamam visiem mūsu turpmākajiem makro, tāpēc mums tas ir jāizveido pasaules, ti, deklarēt moduļa pašā sākumā pirms pirmā Saskaņā ar.

Tālāk seko mūsu galvenais makro MansMakro, kas veiks galveno uzdevumu – pārrēķināt grāmatu pēc metodes Pieteikums.Aprēķināt. Lai būtu skaidrāks, es šūnā A1 esošajā lapā pievienoju formulu =TDATE(), kas parāda datumu un laiku – pārrēķinot, tās saturs tiks atjaunināts tieši mūsu acu priekšā (vienkārši ieslēdziet sekunžu rādīšanu šūnā formāts). Papildu priekam pievienoju makro arī komandu aizpildīt šūnu A1 ar nejauši izvēlētu krāsu (krāsu kods ir vesels skaitlis diapazonā no 0..56, ko ģenerē funkcija RND un noapaļo līdz veselam skaitlim Int).

Makro NākamaisRun pievieno iepriekšējo vērtību TimeToRun Vēl 3 sekundes un pēc tam ieplāno nākamo galvenā makro palaišanu MansMakro šim jaunajam laikam. Protams, praksē varat izmantot jebkurus citus nepieciešamos laika intervālus, iestatot funkcijas argumentus TimeValue formātā hh:mm:ss.

Visbeidzot, ērtības labad ir pievienoti vairāk secību palaišanas makro. Sākumlapa un tā pabeigšana apdare. Pēdējais izmanto ceturtās metodes argumentu, lai pārtrauktu secību. Gada laikā vienāds Nepatiess.

Kopā, ja palaižat makro Sākumlapa, tad viss šis karuselis griezīsies, un uz lapas redzēsim šādu attēlu:

Secību var apturēt, attiecīgi palaižot makro apdare. Ērtības labad varat piešķirt īsinājumtaustiņus abiem makro, izmantojot komandu Makro — opcijas tab attīstītājs (Izstrādātājs — Makro — Opcijas).

Makro palaišana pēc grafika

Protams, viss iepriekš aprakstītais ir iespējams tikai tad, ja darbojas Microsoft Excel un tajā ir atvērts mūsu fails. Tagad apskatīsim sarežģītāku gadījumu: jums jāpalaiž Excel pēc noteikta grafika, piemēram, katru dienu pulksten 5:00, jāatver tajā liels un sarežģīts pārskats un jāatjaunina visi tajā esošie savienojumi un vaicājumi, lai tas esiet gatavi, kad ieradīsimies darbā 🙂

Šādā situācijā labāk izmantot Windows plānotājs – jebkurā Windows versijā īpaši iebūvēta programma, kas var veikt noteiktas darbības pēc grafika. Patiesībā jūs to jau izmantojat, to nezinot, jo jūsu dators regulāri pārbauda atjauninājumus, lejupielādē jaunas pretvīrusu datu bāzes, sinhronizē mākoņa mapes utt. Tas viss ir plānotāja darbs. Tātad mūsu uzdevums ir esošajiem uzdevumiem pievienot vēl vienu, kas palaiž Excel un atvērs tajā norādīto failu. Un mēs piekarināsim savu makro pasākumam Darba burtnīca_Atvērt šo failu – un problēma ir atrisināta.

Uzreiz gribu brīdināt, ka darbam ar Plānotāju var būt nepieciešamas papildu lietotāja tiesības, tādēļ, ja birojā savā darba datorā nevarat atrast tālāk aprakstītās komandas un funkcijas, sazinieties ar saviem IT speciālistiem, lai saņemtu palīdzību.

Plānotāja palaišana

Tātad sāksim plānotāju. Lai to izdarītu, varat:

  • Ar peles labo pogu noklikšķiniet uz pogas mājas Un izvēlies Datora pārvaldība (Datoru pārvaldība)
  • Vadības panelī atlasiet: Administrēšana – uzdevumu plānotājs (Vadības panelis — Administratīvie rīki — Uzdevumu plānotājs)
  • Izvēlieties no galvenās izvēlnes Sākt – Piederumi – Sistēmas rīki – Uzdevumu plānotājs
  • Nospiediet īsinājumtaustiņu uzvara+R, ievadiet taskschd.msc un nospiediet ienākt

The following window should appear on the screen (I have an English version, but you can also have a version):

Makro palaišana laikā

Izveidojiet uzdevumu

Lai izveidotu jaunu uzdevumu, izmantojot vienkāršu soli pa solim vedni, noklikšķiniet uz saites Izveidojiet vienkāršu uzdevumu (Izveidot pamata uzdevumu) labajā panelī.

Pirmajā vedņa darbībā ievadiet izveidojamā uzdevuma nosaukumu un aprakstu:

Makro palaišana laikā

Noklikšķiniet uz pogas nākamais (Nākamais) un nākamajā solī mēs izvēlamies trigeri - palaišanas biežumu vai notikumu, kas palaidīs mūsu uzdevumu (piemēram, datora ieslēgšana):

Makro palaišana laikā

Ja jūs izvēlējāties Dienas (Katru dienu), tad nākamajā darbībā jums būs jāizvēlas konkrēts laiks, secības un darbības sākuma datums (katru 2., 5. dienu utt.):

Makro palaišana laikā

Nākamais solis ir izvēlēties darbību - Palaidiet programmu (Sākt programmu):

Makro palaišana laikā

Un visbeidzot interesantākais ir tas, kas tieši ir jāatver:

Makro palaišana laikā

Iekš Programma vai skripts (Programma/skripts) jāievada ceļš uz Microsoft Excel kā programmu, ti, tieši uz Excel izpildāmo failu. Dažādos datoros ar dažādām Windows un Office versijām šis fails var atrasties dažādās mapēs, tāpēc šeit ir daži veidi, kā uzzināt tā atrašanās vietu.

  • Ar peles labo pogu noklikšķiniet uz ikonas (saīsnes), lai darbvirsmā vai uzdevumjoslā palaistu programmu Excel, un atlasiet komandu Materiāli (Īpašības)un pēc tam atvērtajā logā kopējiet ceļu no rindas mērķis:

    Makro palaišana laikā                      Makro palaišana laikā

  • Atveriet jebkuru Excel darbgrāmatu un pēc tam atveriet Task Manager (Uzdevumu pārvaldnieks) spiežot Ctrl+cits+no un ar peles labo pogu noklikšķinot uz līnijas Microsoft Excel, izvēlieties komandu Materiāli (Īpašības). Atvērtajā logā varat kopēt ceļu, neaizmirstot pievienot atpakaļ slīpsvītru un EXCEL.EXE beigās:

    Makro palaišana laikā              Makro palaišana laikā

  • Atveriet programmu Excel, atveriet Visual Basic redaktoru ar īsinājumtaustiņu cits+F11, atveriet paneli tūlītējs kombinācija Ctrl+G, ievadiet tajā komandu:

    ? Lietojumprogramma.Ceļš

    ... un noklikšķiniet uz ienākt

    Makro palaišana laikā

    Kopējiet iegūto ceļu, neaizmirstot pievienot atpakaļ slīpsvītru un EXCEL.EXE beigās.

Iekš Pievienot argumentus (nav obligāti) (Pievienot argumentus (neobligāti)) jums ir jāievieto pilns ceļš uz grāmatu ar makro, kuru vēlamies atvērt.

Kad viss ir ievadīts, noklikšķiniet uz nākamais un tad apdare (Pabeigt). Uzdevums jāpievieno vispārīgajam sarakstam:

Makro palaišana laikā

Izveidoto uzdevumu ir ērti pārvaldīt, izmantojot labajā pusē esošās pogas. Šeit varat pārbaudīt uzdevumu, palaižot to nekavējoties (skriet)negaidot norādīto laiku. Varat īslaicīgi deaktivizēt uzdevumu (Atspējot)lai tas kādu laiku, piemēram, jūsu atvaļinājumā, pārstātu darboties. Nu, jūs vienmēr varat mainīt parametrus (datumus, laiku, faila nosaukumu), izmantojot pogu Materiāli (Īpašības).

Pievienojiet makro, lai atvērtu failu

Tagad atliek iekarināt mūsu grāmatā vajadzīgā makro palaišanu faila atvēršanas pasākumā. Lai to izdarītu, atveriet grāmatu un dodieties uz Visual Basic redaktoru, izmantojot īsinājumtaustiņus cits+F11 vai pogas Visual Basic tab attīstītājs (Izstrādātājs). Logā, kas tiek atvērts augšējā kreisajā stūrī, jums ir jāatrod mūsu fails kokā un veiciet dubultklikšķi, lai atvērtu moduli Šī grāmata (Šī darba grāmata).

Ja neredzat šo logu Visual Basic redaktorā, varat to atvērt, izmantojot izvēlni Skats — Project Explorer.

Atvērtajā moduļa logā pievienojiet grāmatas atvēršanas notikumu apstrādātāju, atlasot to nolaižamajos sarakstos augšpusē. Workbook и atvērtsattiecīgi:

Makro palaišana laikā

Ekrānā jāparādās procedūras veidnei. Darba burtnīca_Atvērt, kur starp rindām Privāts apakš и End Sub un jāievieto tās VBA komandas, kuras būtu automātiski jāizpilda, kad tiek atvērta šī Excel darbgrāmata, kad plānotājs to atver saskaņā ar grafiku. Šeit ir dažas noderīgas pārtaktēšanas iespējas:

  • ThisWorkbook.RefreshAll – Atsvaidzina visus ārējos datu vaicājumus, Power Query vaicājumus un rakurstabulas. Vispusīgākā iespēja. Vienkārši neaizmirstiet pēc noklusējuma atļaut savienojumus ar ārējiem datiem un atjaunināt saites, izmantojot Fails – Opcijas – Uzticības centrs – Uzticības centra opcijas – Ārējais saturs, pretējā gadījumā, atverot grāmatu, parādīsies standarta brīdinājums un Excel, neko neatjauninot, gaidīs jūsu svētību pogas noklikšķināšanas veidā Iespējot saturu (Iespējot saturu):

    Makro palaišana laikā

  • ActiveWorkbook.Connections(“Savienojuma_nosaukums”). Atsvaidzināt — savienojuma Connection_Name datu atjaunināšana.
  • Loksnes (“5. lapa").Rakurstabulas("Rakurstabula1«).PivotCache.Atsvaidzināt – vienas nosauktas rakurstabulas atjaunināšana PivotTable1 uz lapas Sheet5.
  • Pieteikums.Aprēķināt – visu atvērto Excel darbgrāmatu pārrēķins.
  • Application.CalculateFullRebuild – visu formulu piespiedu pārrēķins un visu atkarību atjaunošana starp šūnām visās atvērtajās darbgrāmatās (līdzvērtīgi visu formulu atkārtotai ievadīšanai).
  • Darblapas (“Pārskats”). Izdrukāt - drukas lapa pics.
  • Zvaniet uz MyMacro - palaidiet makro ar nosaukumu MansMakro.
  • ThisWorkbook.Saglabāt - saglabāt pašreizējo grāmatu
  • ThisWorkbooks.SaveAs "D:ArchiveReport" & Replace(Now, ":", "-") & ".xlsx" – saglabāt grāmatu mapē D: Arhīvs zem nosaukuma pics ar vārdam pievienotu datumu un laiku.

Ja vēlaties, lai makro tiktu izpildīts tikai tad, kad plānotājs failu atver plkst. 5:00, nevis katru reizi, kad lietotājs darba dienas laikā atver darbgrāmatu, tad ir lietderīgi pievienot laika pārbaudi, piemēram:

Ja Format(Tagad, "hh:mm") = "05:00", then ThisWorkbook.RefreshAll  

Tas ir viss. Neaizmirstiet saglabāt darbgrāmatu formātā, kurā ir iespējots makro (xlsm vai xlsb), un varat droši aizvērt programmu Excel un doties mājās, atstājot datoru ieslēgtu. Noteiktā brīdī (pat ja dators ir bloķēts) Plānotājs palaidīs programmu Excel un atvērs tajā norādīto failu, un mūsu makro veiks ieprogrammētās darbības. Un jūs greznosieties gultā, kamēr jūsu smagais ziņojums tiks automātiski pārrēķināts – skaistums! 🙂

  • Kas ir makro, kā tos lietot, kur ievietot Visual Basic kodu programmā Excel
  • Kā izveidot savu makro pievienojumprogrammu programmai Excel
  • Kā izmantot personisko makro darbgrāmatu kā makro bibliotēku programmā Excel

Atstāj atbildi