Drejtimi i një makro në kohë

Një rast shumë i zakonshëm në praktikë: ju duhet të ekzekutoni një ose më shumë makro në një kohë të caktuar ose në një frekuencë të caktuar. Për shembull, ju keni një raport të madh dhe të rëndë që përditësohet gjysmë ore dhe dëshironi të ekzekutoni përditësimin gjysmë ore para se të arrini në punë në mëngjes. Ose keni një makro që duhet të dërgojë automatikisht email tek punonjësit në një frekuencë të caktuar. Ose, kur punoni me një PivotTable, dëshironi që ajo të përditësohet në lëvizje çdo 10 sekonda, e kështu me radhë.

Le të shohim se çfarë Excel dhe Windows kanë aftësinë për ta zbatuar këtë.

Drejtimi i një makro në një frekuencë të caktuar

Mënyra më e lehtë për ta bërë këtë është të përdorni metodën e integruar VBA Aplikimi.Në kohëNjë që ekzekuton makronë e specifikuar në kohën e caktuar. Le ta kuptojmë këtë me një shembull praktik.

Hapni redaktorin e Visual Basic me butonin me të njëjtin emër në skedë zhvillues (Zhvilluesi) ose shkurtore të tastierës Ndalet+F11, futni një modul të ri përmes menysë Insert – Moduli dhe kopjoni kodin e mëposhtëm atje:

Dim TimeToRun 'ndryshore globale ku ruhet koha e ardhshme e ekzekutimit 'kjo është aplikacioni kryesor i makros Sub MyMacro(). qeliza A1 me një ngjyrë të rastësishme :) Thirrni NextRun 'drejtoni makronë NextRun për të vendosur kohën e ardhshme të ekzekutimit End Sub 'kjo makro cakton kohën për ekzekutimin tjetër të makros kryesore Sub NextRun() TimeToRun = Tani + TimeValue("56: 1:00") 'shtoni 00 sekonda në kohën aktuale Aplikimi.OnTime TimeToRun, "MyMacro" 'planifikoni ekzekutimin e radhës Fund Sub 'macro për të filluar sekuencën e përsëritjes Sub Start() Thirrni NextRun End Sub' macro për të ndaluar sekuencën e përsëritjes Aplikimi Sub Finish().OnTime TimeToRun, "MyMacro", , False Fund Sub  

Le të kuptojmë se çfarë është këtu.

Së pari, ne kemi nevojë për një variabël që do të ruajë kohën e ekzekutimit të ardhshëm të makros tonë - e quajta unë TimeToRun. Ju lutemi vini re se përmbajtja e kësaj ndryshore duhet të jetë e disponueshme për të gjitha makrot tona të mëvonshme, kështu që ne duhet ta bëjmë atë global, dmth deklarojeni në fillim të modulit para të parit Sub.

Më pas vjen makroja jonë kryesore MyMacro, i cili do të kryejë detyrën kryesore - të rillogarisë librin duke përdorur metodën Aplikimi.Llogaritni. Për ta bërë më të qartë, shtova formulën =TDATE() në fletën në qelizën A1, e cila shfaq datën dhe kohën - kur të rillogaritet, përmbajtja e saj do të përditësohet menjëherë para syve tanë (thjesht aktivizoni shfaqjen e sekondave në qelizë format). Për argëtim shtesë, unë gjithashtu shtova në makro komandën për të mbushur qelizën A1 me një ngjyrë të zgjedhur rastësisht (kodi i ngjyrës është një numër i plotë në rangun 0..56, i cili gjenerohet nga funksioni Rnd dhe rrumbullakoset në një funksion të plotë int).

Macro NextRun i shtohet vlerës së mëparshme TimeToRun 3 sekonda të tjera dhe më pas planifikon ekzekutimin e radhës të makros kryesore MyMacro për këtë kohë të re. Sigurisht, në praktikë, mund të përdorni çdo interval tjetër kohor që ju nevojitet duke vendosur argumentet e funksionit Vlera kohore në formatin hh:mm:ss.

Dhe së fundi, vetëm për lehtësi, janë shtuar më shumë makro të nisjes së sekuencës. Fillimi dhe përfundimin e tij Fund. I fundit përdor argumentin e metodës së katërt për të thyer sekuencën. Me kohë i barabartë I rremë.

Totali nëse ekzekutoni makro Fillimi, atëherë i gjithë ky karusel do të rrotullohet dhe ne do të shohim foton e mëposhtme në fletë:

Ju mund ta ndaloni sekuencën duke ekzekutuar, përkatësisht, makro Fund. Për lehtësi, mund të caktoni shkurtore të tastierës për të dy makrot duke përdorur komandën Makro - Opsione tab zhvillues (Zhvillues - Makro - Opsione).

Drejtimi i një makro sipas një orari

Natyrisht, gjithçka e përshkruar më sipër është e mundur vetëm nëse keni Microsoft Excel në punë dhe skedari ynë është i hapur në të. Tani le të shohim një rast më të ndërlikuar: duhet të ekzekutoni Excel sipas një orari të caktuar, për shembull, çdo ditë në orën 5:00, të hapni një raport të madh dhe kompleks në të dhe të përditësoni të gjitha lidhjet dhe pyetjet në të në mënyrë që të bëhuni gati deri në momentin që të arrijmë në punë 🙂

Në një situatë të tillë, është më mirë të përdoret Programuesi i Windows – një program i ndërtuar posaçërisht në çdo version të Windows që mund të kryejë veprime të specifikuara në një plan. Në fakt, ju tashmë po e përdorni pa e ditur, sepse kompjuteri juaj kontrollon rregullisht për përditësime, shkarkon baza të dhënash të reja anti-virus, sinkronizon dosjet cloud, etj. E gjithë kjo është punë e Scheduler. Pra, detyra jonë është të shtojmë në detyrat ekzistuese një tjetër që do të nisë Excel dhe do të hapë skedarin e specifikuar në të. Dhe ne do të varim makro tonë në ngjarje Libri i punës_Hap këtë skedar - dhe problemi është zgjidhur.

Dua t'ju paralajmëroj menjëherë se puna me Scheduler mund të kërkojë të drejta të avancuara të përdoruesit, kështu që nëse nuk mund të gjeni komandat dhe funksionet e përshkruara më poshtë në kompjuterin tuaj të punës në zyrë, kontaktoni specialistët tuaj të IT për ndihmë.

Nisja e Scheduler

Pra, le të fillojmë Scheduler. Për ta bërë këtë, ju mund të:

  • Klikoni me të djathtën në butonin fillim dhe zgjidhni Menaxhimi i kompjuterave (Menaxhimi i kompjuterit)
  • Zgjidhni në Panelin e Kontrollit: Administrimi – Programuesi i detyrave (Paneli i kontrollit - Mjetet administrative - Programuesi i detyrave)
  • Zgjidhni nga menyja kryesore Fillimi – Aksesorët – Veglat e Sistemit – Programuesi i Detyrave
  • Shtypni shkurtore të tastierës Fitoj+R, hyr detyratchd.msc dhe shtypni Shkruani

Dritarja e mëposhtme duhet të shfaqet në ekran (Unë kam një version anglisht, por ju gjithashtu mund të keni një version):

Drejtimi i një makro në kohë

Krijoni një detyrë

Për të krijuar një detyrë të re duke përdorur një magjistar të thjeshtë hap pas hapi, klikoni në lidhjen Krijo një detyrë të thjeshtë (Krijoni detyrën bazë) në panelin e djathtë.

Në hapin e parë të magjistarit, vendosni emrin dhe përshkrimin e detyrës që do të krijohet:

Drejtimi i një makro në kohë

Klikoni në butonin Tjetër (Tjetër) dhe në hapin tjetër zgjedhim një shkas - frekuencën e nisjes ose një ngjarje që do të nisë detyrën tonë (për shembull, ndezja e kompjuterit):

Drejtimi i një makro në kohë

Nëse keni zgjedhur Përditë (Çdo ditë), pastaj në hapin tjetër do t'ju duhet të zgjidhni një kohë specifike, datën e fillimit të sekuencës dhe hapin (çdo ditë të dytë, të 2-të, etj.):

Drejtimi i një makro në kohë

Hapi tjetër është të zgjidhni një veprim - Drejtoni programin (Filloni një program):

Drejtimi i një makro në kohë

Dhe së fundi, gjëja më interesante është se çfarë saktësisht duhet të hapet:

Drejtimi i një makro në kohë

Program ose skenar (Programi/skripti) ju duhet të futni rrugën për në Microsoft Excel si program, pra direkt në ekzekutuesin e Excel. Në kompjuterë të ndryshëm me versione të ndryshme të Windows dhe Office, ky skedar mund të jetë në dosje të ndryshme, kështu që këtu janë disa mënyra për të gjetur vendndodhjen e tij:

  • Klikoni me të djathtën në ikonën (shkurtorja) për të nisur Excel në desktop ose në shiritin e detyrave dhe zgjidhni komandën Materiale (Vetitë), dhe më pas në dritaren që hapet, kopjoni shtegun nga rreshti Objektiv:

    Drejtimi i një makro në kohë                      Drejtimi i një makro në kohë

  • Hapni çdo libër pune në Excel dhe më pas hapeni Task Manager (Menaxher detyrë) shtyrë Ctrl+Ndalet+nga dhe duke klikuar me të djathtën në rresht Microsoft Excel, zgjidhni një komandë Materiale (Vetitë). Në dritaren që hapet, mund të kopjoni shtegun, duke mos harruar t'i shtoni një vijë të pasme dhe EXCEL.EXE në fund:

    Drejtimi i një makro në kohë              Drejtimi i një makro në kohë

  • Hapni Excel, hapni redaktorin e Visual Basic me shkurtore të tastierës Ndalet+F11, paneli i hapur i menjëhershëm një kombinim i Ctrl+G, futni komandën në të:

    ? Aplikimi.Rruga

    … dhe klikoni mbi Shkruani

    Drejtimi i një makro në kohë

    Kopjoni rrugën që rezulton, duke mos harruar t'i shtoni një vijë të pasme dhe EXCEL.EXE në fund.

Shtoni argumente (opsionale) (Shto argumente (opsionale)) ju duhet të futni shtegun e plotë drejt librit me makro që duam të hapim.

Kur të futet gjithçka, atëherë klikoni Tjetër dhe pastaj Fund (Mbaro). Detyra duhet të shtohet në listën e përgjithshme:

Drejtimi i një makro në kohë

Është i përshtatshëm për të menaxhuar detyrën e krijuar duke përdorur butonat në të djathtë. Këtu mund ta testoni detyrën duke e ekzekutuar menjëherë (vrapim)pa pritur kohën e caktuar. Ju mund të çaktivizoni përkohësisht një detyrë (Çaktivizo)në mënyrë që të ndalojë së funksionuari për një periudhë kohore, si p.sh. pushimet tuaja. Epo, gjithmonë mund të ndryshoni parametrat (datat, koha, emri i skedarit) përmes butonit Materiale (Vetitë).

Shtoni një makro për të hapur një skedar

Tani mbetet për të varur në librin tonë lëshimin e makros që na nevojitet në ngjarjen e hapur të skedarit. Për ta bërë këtë, hapni librin dhe shkoni te redaktori i Visual Basic duke përdorur shkurtoren e tastierës Ndalet+F11 ose butonat Visual Basic tab zhvillues (Zhvilluesi). Në dritaren që hapet në këndin e sipërm të majtë, duhet të gjeni skedarin tonë në pemë dhe klikoni dy herë për të hapur modulin Ky libër (Ky Libër pune).

Nëse nuk e shihni këtë dritare në redaktorin e Visual Basic, atëherë mund ta hapni atë përmes menysë Shiko - Projekt Explorer.

Në dritaren e modulit që hapet, shtoni një mbajtës të ngjarjeve të hapura të librit duke e zgjedhur atë nga listat rënëse në krye manual и hapur, përkatësisht:

Drejtimi i një makro në kohë

Një shabllon i procedurës duhet të shfaqet në ekran. Libri i punës_Hap, ku midis rreshtave Nën Privat и Sub End dhe ju duhet të futni ato komanda VBA që duhet të ekzekutohen automatikisht kur hapet ky libër pune në Excel, kur Scheduler e hap atë sipas orarit. Këtu janë disa opsione të dobishme për overclocking:

  • This Workbook.RefreshAll – Rifreskon të gjitha pyetjet e të dhënave të jashtme, pyetjet e Power Query dhe PivotTables. Opsioni më i gjithanshëm. Vetëm mos harroni të lejoni lidhjet me të dhënat e jashtme si parazgjedhje dhe përditësoni lidhjet nëpërmjet Skedari – Opsionet – Qendra e Mirëbesimit – Opsionet e Qendrës së Mirëbesimit – Përmbajtja e jashtme, përndryshe, kur hapni librin, do të shfaqet një paralajmërim standard dhe Excel, pa përditësuar asgjë, do të presë bekimin tuaj në formën e klikimit të butonit. Aktivizo përmbajtjen (Aktivizo përmbajtjen):

    Drejtimi i një makro në kohë

  • ActiveWorkbook.Connections(“Connection_Name”).Rifresko — përditësimi i të dhënave në lidhjen Connection_Name.
  • Fletët (“Fleta5“).PivotTables(“Tabela Pivot1«).PivotCache.Rifresko – përditësimi i një tabele të vetme kryesore të emërtuar Tabela kryesore 1 në fletë Sheet5.
  • Aplikimi.Llogaritni – rillogaritja e të gjithë librave të hapur të Excel-it.
  • Aplikimi.CalculateFullRebuild – rillogaritja e detyruar e të gjitha formulave dhe rindërtimi i të gjitha varësive midis qelizave në të gjithë librat e hapur të punës (ekuivalente me rihyrjen e të gjitha formulave).
  • Fletët e punës (“Raporti”).PrintOut – fletë printimi Fotografitë.
  • Telefono MyMacro – ekzekutoni një makro të quajtur MyMacro.
  • This Workbook.Save – ruani librin aktual
  • ThisWorkbooks.SaveAs "D:ArchiveReport" & Replace(Tani, ":", "-") & ".xlsx" – ruajeni librin në një dosje D: Arkivi nën emrin Fotografitë me datën dhe orën e bashkangjitur emrit.

Nëse dëshironi që makroja të ekzekutohet vetëm kur skedari hapet nga Scheduler në orën 5:00 të mëngjesit, dhe jo çdo herë që përdoruesi hap librin e punës gjatë ditës së punës, atëherë ka kuptim të shtoni një kontroll orar, për shembull:

If Format(Tani, "hh:mm") = "05:00" Pastaj ThisWorkbook.RefreshAll  

Kjo eshte e gjitha. Mos harroni të ruani librin tuaj të punës në një format të aktivizuar makro (xlsm ose xlsb) dhe mund ta mbyllni me siguri Excel dhe të shkoni në shtëpi, duke e lënë kompjuterin tuaj të ndezur. Në një moment të caktuar (edhe nëse kompjuteri është i kyçur), Scheduler do të nisë Excel dhe do të hapë skedarin e specifikuar në të, dhe makroja jonë do të kryejë veprimet e programuara. Dhe ju do të luksoze në shtrat ndërsa raporti juaj i rëndë rillogaritet automatikisht - bukuria! 🙂

  • Çfarë janë makro, si t'i përdorim ato, ku të futni kodin Visual Basic në Excel
  • Si të krijoni shtesën tuaj makro për Excel
  • Si të përdorni "Personal Macro Workbook" si një bibliotekë për makrot tuaja në Excel

Lini një Përgjigju