Rhedeg macro ar amser

Achos cyffredin iawn yn ymarferol: mae angen i chi redeg un neu fwy o'ch macros ar amser penodol neu ar amlder penodol. Er enghraifft, mae gennych chi adroddiad mawr a thrwm sy'n diweddaru hanner awr a hoffech chi redeg y diweddariad hanner awr cyn i chi gyrraedd y gwaith yn y bore. Neu mae gennych facro a ddylai anfon e-byst yn awtomatig at weithwyr ar amlder penodol. Neu, wrth weithio gyda PivotTable, rydych chi am iddo ddiweddaru ar y hedfan bob 10 eiliad, ac ati.

Gadewch i ni edrych ar yr hyn y mae gan Excel a Windows y gallu i weithredu hyn.

Rhedeg macro ar amlder penodol

Y ffordd hawsaf o wneud hyn yw defnyddio'r dull VBA adeiledig Cais.Ar AmserA sy'n rhedeg y macro penodedig ar yr amser penodedig. Gadewch i ni ddeall hyn gydag enghraifft ymarferol.

Agorwch y golygydd Visual Basic gyda'r botwm o'r un enw ar y tab datblygwr (Datblygwr) neu lwybr byr bysellfwrdd Alt+F11, mewnosod modiwl newydd drwy'r ddewislen Mewnosod – Modiwl a chopïwch y cod canlynol yno:

Newidyn byd-eang Dim TimeToRun 'lle mae'r amser rhedeg nesaf yn cael ei storio' dyma'r prif facro Sub MyMacro() Application.Calculate 'ailgyfrifwch Ystod y llyfr("A1").Interior.ColorIndex = Int(Rnd() * 56) ' llenwi cell A1 gyda lliw ar hap :) Ffoniwch NextRun 'rhedwch y macro NextRun i osod yr amser rhedeg nesaf Diwedd yr Is' mae'r macro hwn yn gosod yr amser ar gyfer rhediad nesaf y prif facro Is NextRun() TimeToRun = Nawr + Gwerth Amser("00: 00:03") 'ychwanegu 3 eiliad i'r amser presennol Application.OnTime TimeToRun, "MyMacro" 'amserlen y rhediad nesaf End Sub' macro i gychwyn y dilyniant ailadrodd Is-gychwyn() Ffoniwch NextRun End Sub 'macro i atal y dilyniant ailadrodd Is Gorffen() Application.OnTime TimeToRun, "MyMacro", , False End Is  

Gadewch i ni chyfrif i maes beth sydd yma.

Yn gyntaf, mae angen newidyn arnom a fydd yn storio amser rhediad nesaf ein macro - fe'i gelwais AmserToRun. Sylwch fod yn rhaid i gynnwys y newidyn hwn fod ar gael i'n holl macros dilynol, felly mae angen i ni ei wneud byd-eang, hy datgan ar ddechrau'r modiwl cyn y cyntaf is.

Nesaf daw ein prif macro FyMacro, a fydd yn cyflawni'r brif dasg - ailgyfrifo'r llyfr gan ddefnyddio'r dull Cais.Calculate. I'w wneud yn gliriach, ychwanegais y fformiwla = TDATE () at y ddalen yng nghell A1, sy'n dangos y dyddiad a'r amser - pan gaiff ei ailgyfrifo, bydd ei gynnwys yn cael ei ddiweddaru reit o flaen ein llygaid (trowch yr arddangosfa eiliadau ymlaen yn y gell fformat). Am hwyl ychwanegol, fe wnes i hefyd ychwanegu at y macro y gorchymyn i lenwi cell A1 gyda lliw a ddewiswyd ar hap (mae'r cod lliw yn gyfanrif yn yr ystod 0..56, sy'n cael ei gynhyrchu gan y swyddogaeth RND ac yn talgrynnu i fyny i ffwythiant cyfanrif Int).

Macro Rhediad Nesaf yn ychwanegu at y gwerth blaenorol AmserToRun 3 eiliad arall ac yna'n amserlennu rhediad nesaf y prif facro FyMacro am yr amser newydd hwn. Wrth gwrs, yn ymarferol, gallwch ddefnyddio unrhyw gyfnodau amser eraill sydd eu hangen arnoch trwy osod y dadleuon swyddogaeth Gwerth Amser yn y fformat hh:mm:ss.

Ac yn olaf, dim ond er hwylustod, mae mwy o macros lansio dilyniant wedi'u hychwanegu. Hafan a'i gwblhau Gorffen. Mae'r un olaf yn defnyddio'r bedwaredd ddadl dull i dorri'r dilyniant. Ar amser cyfartal Anghywir.

Cyfanswm os ydych yn rhedeg y macro Hafan, yna bydd y carwsél cyfan hwn yn troelli, a byddwn yn gweld y llun canlynol ar y ddalen:

Gallwch atal y dilyniant trwy redeg, yn y drefn honno, y macro Gorffen. Er hwylustod, gallwch chi aseinio llwybrau byr bysellfwrdd i'r ddau macros gan ddefnyddio'r gorchymyn Macros - Opsiynau tab datblygwr (Datblygwr - Macros - Opsiynau).

Rhedeg macro ar amserlen

Wrth gwrs, mae popeth a ddisgrifir uchod yn bosibl dim ond os oes gennych Microsoft Excel yn rhedeg a bod ein ffeil ar agor ynddi. Nawr, gadewch i ni edrych ar achos mwy cymhleth: mae angen i chi redeg Excel yn unol ag amserlen benodol, er enghraifft, bob dydd am 5:00, agor adroddiad mawr a chymhleth ynddo a diweddaru'r holl gysylltiadau ac ymholiadau ynddo fel y bydd. byddwch yn barod erbyn i ni gyrraedd y gwaith 🙂

Mewn sefyllfa o'r fath, mae'n well ei ddefnyddio Trefnydd Windows – rhaglen sydd wedi'i chynnwys yn arbennig mewn unrhyw fersiwn o Windows a all gyflawni gweithredoedd penodol ar amserlen. Yn wir, rydych chi eisoes yn ei ddefnyddio heb yn wybod iddo, oherwydd bod eich PC yn gwirio'n rheolaidd am ddiweddariadau, yn lawrlwytho cronfeydd data gwrth-firws newydd, yn cydamseru ffolderi cwmwl, ac ati. Gwaith y Scheduler yw'r cyfan. Felly ein tasg ni yw ychwanegu at y tasgau presennol un arall a fydd yn lansio Excel ac yn agor y ffeil a nodir ynddo. A byddwn yn hongian ein macro ar y digwyddiad Llyfr Gwaith_Agored y ffeil hon - ac mae'r broblem yn cael ei datrys.

Rwyf am eich rhybuddio ar unwaith y gall fod angen hawliau defnyddwyr uwch wrth weithio gyda'r Trefnydd, felly os na allwch ddod o hyd i'r gorchmynion a'r swyddogaethau a ddisgrifir isod ar eich cyfrifiadur gwaith yn y swyddfa, cysylltwch â'ch arbenigwyr TG am gymorth.

Lansio'r Trefnydd

Felly gadewch i ni ddechrau y Scheduler. I wneud hyn, gallwch naill ai:

  • De-gliciwch ar y botwm dechrau a dewis Rheoli Cyfrifiaduron (Rheoli cyfrifiaduron)
  • Dewiswch yn y Panel Rheoli: Gweinyddu - Trefnydd Tasg (Panel Rheoli - Offer Gweinyddol - Trefnydd Tasg)
  • Dewiswch o'r brif ddewislen Cychwyn - Ategolion - Offer System - Trefnydd Tasg
  • Gwasgwch y shortcut bysellfwrdd Ennill+R, nodwch tasgauchd.msc ac yn y wasg Rhowch

Dylai'r ffenestr ganlynol ymddangos ar y sgrin (mae gen i fersiwn Saesneg, ond gallwch chi gael fersiwn hefyd):

Rhedeg macro ar amser

Creu tasg

I greu tasg newydd gan ddefnyddio dewin cam wrth gam syml, cliciwch ar y ddolen Creu tasg syml (Creu Tasg Sylfaenol) yn y panel cywir.

Ar gam cyntaf y dewin, rhowch enw a disgrifiad o'r dasg i'w chreu:

Rhedeg macro ar amser

Cliciwch ar y botwm Digwyddiadau (Nesaf) ac yn y cam nesaf rydym yn dewis sbardun - amlder lansio neu ddigwyddiad a fydd yn lansio ein tasg (er enghraifft, troi'r cyfrifiadur ymlaen):

Rhedeg macro ar amser

Os dewisoch chi Daily (Dyddiol), yna yn y cam nesaf bydd angen i chi ddewis amser penodol, dyddiad cychwyn y dilyniant a'r cam (bob 2il ddiwrnod, 5ed diwrnod, ac ati):

Rhedeg macro ar amser

Y cam nesaf yw dewis cam gweithredu - Rhedeg y rhaglen (Cychwyn rhaglen):

Rhedeg macro ar amser

Ac yn olaf, y peth mwyaf diddorol yw beth yn union sydd angen ei agor:

Rhedeg macro ar amser

Yn y Rhaglen neu sgript (Rhaglen/sgript) mae angen i chi fynd i mewn i'r llwybr i Microsoft Excel fel rhaglen, hy yn uniongyrchol i'r gweithredadwy Excel. Ar wahanol gyfrifiaduron gyda fersiynau gwahanol o Windows ac Office, gall y ffeil hon fod mewn ffolderi gwahanol, felly dyma ychydig o ffyrdd i chi ddarganfod ei lleoliad:

  • De-gliciwch ar yr eicon (llwybr byr) i lansio Excel ar y bwrdd gwaith neu yn y bar tasgau a dewiswch y gorchymyn deunyddiau (Priodweddau), ac yna yn y ffenestr sy'n agor, copïwch y llwybr o'r llinell Targed:

    Rhedeg macro ar amser                      Rhedeg macro ar amser

  • Agorwch unrhyw lyfr gwaith Excel, yna agorwch Dasgu Manager (Rheolwr Tasg) gwthio Ctrl+Alt+O a thrwy dde-glicio ar y llinell Microsoft Excel, dewiswch orchymyn deunyddiau (Priodweddau). Yn y ffenestr sy'n agor, gallwch chi gopïo'r llwybr, heb anghofio ychwanegu slaes iddo ac EXCEL.EXE ar y diwedd:

    Rhedeg macro ar amser              Rhedeg macro ar amser

  • Agor Excel, agor golygydd Visual Basic gyda llwybr byr bysellfwrdd Alt+F11, panel agored ar unwaith cyfuniad o Ctrl+G, rhowch y gorchymyn ynddo:

    ? Cais.Llwybr

    …a chliciwch ar Rhowch

    Rhedeg macro ar amser

    Copïwch y llwybr canlyniadol, heb anghofio ychwanegu slaes iddo ac EXCEL.EXE ar y diwedd.

Yn y Ychwanegu dadleuon (dewisol) (Ychwanegu dadleuon (dewisol)) mae angen i chi fewnosod y llwybr llawn i'r llyfr gyda'r macro yr ydym am ei agor.

Pan fydd popeth wedi'i nodi, yna cliciwch Digwyddiadau ac yna Gorffen (Gorffen). Dylid ychwanegu'r dasg at y rhestr gyffredinol:

Rhedeg macro ar amser

Mae'n gyfleus rheoli'r dasg a grëwyd gan ddefnyddio'r botymau ar y dde. Yma gallwch chi brofi'r dasg trwy ei rhedeg ar unwaith (rhedeg)heb aros am yr amser penodedig. Gallwch chi ddadactifadu tasg dros dro (Analluoga)fel ei fod yn stopio rhedeg am gyfnod o amser, fel eich gwyliau. Wel, gallwch chi bob amser newid y paramedrau (dyddiadau, amser, enw ffeil) trwy'r botwm deunyddiau (Priodweddau).

Ychwanegu macro i agor ffeil

Nawr mae'n weddill i hongian yn ein llyfr lansiad y macro sydd ei angen arnom ar y digwyddiad ffeil agored. I wneud hyn, agorwch y llyfr ac ewch i'r golygydd Visual Basic gan ddefnyddio'r llwybr byr bysellfwrdd Alt+F11 neu fotymau Visual Basic tab datblygwr (Datblygwr). Yn y ffenestr sy'n agor yn y gornel chwith uchaf, mae angen i chi ddod o hyd i'n ffeil ar y goeden a chlicio ddwywaith i agor y modiwl Mae'r llyfr hwn (Y Llyfr Gwaith Hwn).

Os na welwch y ffenestr hon yn y golygydd Visual Basic, yna gallwch ei agor trwy'r ddewislen Gweld — Project Explorer.

Yn ffenestr y modiwl sy'n agor, ychwanegwch driniwr digwyddiad agored llyfr trwy ei ddewis o'r cwymplenni ar y brig Llyfr Gwaith и agored, yn y drefn honno:

Rhedeg macro ar amser

Dylai templed gweithdrefn ymddangos ar y sgrin. Llyfr Gwaith_Agored, lle rhwng y llinellau Is Preifat и Is-End ac mae angen i chi fewnosod y gorchmynion VBA hynny y dylid eu gweithredu'n awtomatig pan agorir y llyfr gwaith Excel hwn, pan fydd y Trefnydd yn ei agor yn ôl yr amserlen. Dyma rai opsiynau defnyddiol ar gyfer gor-glocio:

  • ThisWorkbook.RefreshAll – Yn adnewyddu pob ymholiad data allanol, ymholiadau Power Query, a PivotTables. Yr opsiwn mwyaf amlbwrpas. Peidiwch ag anghofio caniatáu cysylltiadau â data allanol yn ddiofyn a diweddaru dolenni trwy Ffeil - Opsiynau - Canolfan Ymddiriedolaeth - Opsiynau Canolfan Ymddiriedolaeth - Cynnwys Allanol, fel arall, pan fyddwch chi'n agor y llyfr, bydd rhybudd safonol yn ymddangos a bydd Excel, heb ddiweddaru unrhyw beth, yn aros am eich bendith ar ffurf clicio ar y botwm Galluogi cynnwys (Galluogi cynnwys):

    Rhedeg macro ar amser

  • ActiveWorkbook.Connections("Cysylltiad_Enw").Adnewyddu — diweddaru data ar y cysylltiad Connection_Name.
  • Taflenni ("Taflen 5“).PivotTables(“PivotTable1«).PivotCache.Refresh – diweddaru un tabl colyn wedi'i enwi PivotTable1 ar y ddalen Sheet5.
  • Cais.Calculate – ailgyfrifo holl lyfrau gwaith Excel agored.
  • Application.CalculateFullRebuild – gorfodi ailgyfrifo'r holl fformiwlâu ac ailadeiladu'r holl ddibyniaethau rhwng celloedd ym mhob llyfr gwaith agored (sy'n cyfateb i ail-gofnodi pob fformiwla).
  • Taflenni gwaith (“Adroddiad”).Argraffu Allan - dalen argraffu pics.
  • Ffoniwch MyMacro – rhedeg macro o'r enw FyMacro.
  • ThisWorkbook.Save - arbed y llyfr cyfredol
  • ThisWorkbooks.SaveAs “D:ArchiveReport” & Replace(Nawr, “:”, “-“) & “.xlsx” – arbedwch y llyfr i ffolder D: Archif dan yr enw pics gyda dyddiad ac amser ynghlwm wrth yr enw.

Os ydych chi am i'r macro gael ei weithredu dim ond pan fydd y ffeil yn cael ei hagor gan y Trefnydd am 5:00 am, ac nid bob tro y bydd y defnyddiwr yn agor y llyfr gwaith yn ystod y diwrnod gwaith, yna mae'n gwneud synnwyr ychwanegu gwiriad amser, er enghraifft:

If Format(Nawr, "hh:mm") = "05:00" Yna ThisWorkbook.RefreshAll  

Dyna i gyd. Peidiwch ag anghofio arbed eich llyfr gwaith mewn fformat macro-alluogi (xlsm neu xlsb) a gallwch gau Excel yn ddiogel a mynd adref, gan adael eich cyfrifiadur ymlaen. Ar adeg benodol (hyd yn oed os yw'r PC wedi'i gloi), bydd y Trefnydd yn lansio Excel ac yn agor y ffeil a nodir ynddo, a bydd ein macro yn cyflawni'r gweithredoedd a raglennwyd. A byddwch yn moethus yn y gwely tra bod eich adroddiad trwm yn cael ei ailgyfrifo'n awtomatig - harddwch! 🙂

  • Beth yw macros, sut i'w defnyddio, ble i fewnosod cod Visual Basic yn Excel
  • Sut i greu eich ychwanegiad macro eich hun ar gyfer Excel
  • Sut i ddefnyddio'r Llyfr Gwaith Macro Personol fel llyfrgell ar gyfer eich macros yn Excel

Gadael ymateb