Ժամանակին մակրո գործարկել

Գործնականում շատ տարածված դեպք. դուք պետք է գործարկեք ձեր մեկ կամ մի քանի մակրո տվյալ պահին կամ որոշակի հաճախականությամբ: Օրինակ, դուք ունեք մեծ և ծանր հաշվետվություն, որը թարմացվում է կես ժամ, և ցանկանում եք թարմացումը գործարկել առավոտյան աշխատանքի գալուց կես ժամ առաջ: Կամ դուք ունեք մակրո, որը պետք է ավտոմատ կերպով նամակներ ուղարկի աշխատակիցներին որոշակի հաճախականությամբ: Կամ, երբ աշխատում եք PivotTable-ի հետ, ցանկանում եք, որ այն թարմացվի թռիչքի ժամանակ յուրաքանչյուր 10 վայրկյանը մեկ և այլն:

Եկեք նայենք, թե Excel-ն ու Windows-ն ինչ հնարավորություն ունեն դա իրականացնելու:

Տրված հաճախականությամբ մակրո վարելը

Դա անելու ամենահեշտ ձևը ներկառուցված VBA մեթոդի օգտագործումն է Application.OnTimeAn, որը գործարկում է նշված մակրոները նշված ժամանակում: Սա հասկանանք գործնական օրինակով։

Բացեք Visual Basic-ի խմբագրիչը՝ ներդիրի համանուն կոճակով երեվակիչ (մշակող) կամ ստեղնաշարի դյուրանցում ալտ+F11, ցանկի միջոցով տեղադրեք նոր մոդուլ Ներդիր – մոդուլ և այնտեղ պատճենեք հետևյալ կոդը.

Dim TimeToRun 'գլոբալ փոփոխական, որտեղ պահվում է հաջորդ գործարկման ժամանակը' սա հիմնական մակրո Sub MyMacro() Application.Calculate' recalculate the book Range("A1").Interior.ColorIndex = Int(Rnd() * 56) 'fill A1 բջիջը պատահական գույնով :) Զանգահարեք NextRun 'գործարկեք NextRun մակրո՝ հաջորդ գործարկման ժամանակը սահմանելու համար End Sub' այս մակրոն սահմանում է հիմնական մակրոյի հաջորդ գործարկման ժամանակը Sub NextRun() TimeToRun = Now + TimeValue("00: 00:03") 'ավելացրեք 3 վայրկյան ընթացիկ ժամանակին Application.OnTime TimeToRun, "MyMacro" 'պլանավորեք հաջորդ գործարկումը End Sub 'macro, որպեսզի սկսի կրկնվող հաջորդականությունը Sub Start() Զանգահարեք NextRun End Sub 'մակրո կրկնվող հաջորդականությունը դադարեցնելու համար Sub Finish() Application.OnTime TimeToRun, "MyMacro", , False End Sub  

Եկեք պարզենք, թե ինչ է այստեղ:

Նախ, մեզ անհրաժեշտ է փոփոխական, որը կպահի մեր մակրոյի հաջորդ գործարկման ժամանակը, ես դա անվանեցի TimeToRun. Խնդրում ենք նկատի ունենալ, որ այս փոփոխականի բովանդակությունը պետք է հասանելի լինի մեր բոլոր հետագա մակրոներին, ուստի մենք պետք է այն դարձնենք համաշխարհային, այսինքն՝ հայտարարեք մոդուլի հենց սկզբում առաջինից առաջ Sub.

Հաջորդը գալիս է մեր հիմնական մակրո MyMacro, որը կկատարի հիմնական խնդիրը՝ մեթոդով գիրքը վերահաշվարկել Դիմում.Հաշվարկել. Որպեսզի ավելի պարզ լինի, ես A1 բջիջի թերթիկում ավելացրի =TDATE() բանաձևը, որը ցույց է տալիս ամսաթիվը և ժամը. երբ վերահաշվարկվի, դրա բովանդակությունը կթարմացվի հենց մեր աչքի առաջ (պարզապես միացրե՛ք վայրկյանների ցուցադրումը բջիջում: ձևաչափ): Լրացուցիչ զվարճանքի համար ես նաև մակրոյում ավելացրի հրամանը՝ A1 բջիջը պատահականորեն ընտրված գույնով լցնելու հրամանը (գունային կոդը 0..56 միջակայքի ամբողջ թիվ է, որը ստեղծվում է ֆունկցիայի միջոցով: շրջ և կլորացվում է մինչև ամբողջ թվային ֆունկցիա Int).

Մակրո Հաջորդ Գործարկել ավելացնում է նախորդ արժեքը TimeToRun Եվս 3 վայրկյան, այնուհետև պլանավորում է հիմնական մակրոյի հաջորդ գործարկումը MyMacro այս նոր ժամանակի համար: Իհարկե, գործնականում դուք կարող եք օգտագործել ցանկացած այլ ժամանակային ընդմիջում, որն անհրաժեշտ է՝ սահմանելով ֆունկցիայի արգումենտները Ժամկետային արժեք hh:mm:ss ձևաչափով:

Եվ վերջապես, պարզապես հարմարության համար ավելացվել են հաջորդականության գործարկման ավելի շատ մակրոներ: Գլխավոր և դրա ավարտը Ավարտել. Վերջինը օգտագործում է չորրորդ մեթոդի փաստարկը հաջորդականությունը խախտելու համար: Ժամանակին հավասար Կեղծ.

Ընդհանուր, եթե գործարկեք մակրո Գլխավոր, ապա այս ամբողջ կարուսելը կպտտվի, և թերթիկի վրա կտեսնենք հետևյալ նկարը.

Դուք կարող եք դադարեցնել հաջորդականությունը՝ գործարկելով, համապատասխանաբար, մակրո Ավարտել. Հարմարության համար հրամանի միջոցով կարող եք ստեղնաշարի դյուրանցումներ նշանակել երկու մակրոներին Մակրոներ - Ընտրանքներ ականջակալ երեվակիչ (Մշակող — մակրո — Ընտրանքներ).

Մակրո գործարկում ժամանակացույցով

Իհարկե, վերը նկարագրված ամեն ինչ հնարավոր է միայն այն դեպքում, եթե դուք աշխատում եք Microsoft Excel-ում, և մեր ֆայլը բաց է դրանում: Հիմա եկեք նայենք մի ավելի բարդ դեպքի. անհրաժեշտ է գործարկել Excel-ը տվյալ ժամանակացույցի համաձայն, օրինակ, ամեն օր ժամը 5:00-ին, բացել մեծ և բարդ հաշվետվություն դրանում և թարմացնել բոլոր կապերն ու հարցումները, որպեսզի այն կատարվի: պատրաստ եղեք մինչ մենք կհասնենք աշխատանքի 🙂

Նման իրավիճակում ավելի լավ է օգտագործել Windows-ի ժամանակացույց – ծրագիր, որը հատուկ ներկառուցված է Windows-ի ցանկացած տարբերակում, որը կարող է կատարել սահմանված գործողություններ ժամանակացույցով: Փաստորեն, դուք արդեն օգտագործում եք այն առանց իմանալու, քանի որ ձեր համակարգիչը պարբերաբար ստուգում է թարմացումները, ներբեռնում է նոր հակավիրուսային տվյալների բազաներ, համաժամացնում է ամպային թղթապանակները և այլն: Այս ամենը Scheduler-ի գործն է: Այսպիսով, մեր խնդիրն է գոյություն ունեցող առաջադրանքներին ավելացնել ևս մեկը, որը կգործարկի Excel-ը և կբացի նշված ֆայլը դրանում: Իսկ միջոցառման վրա մենք կկախենք մեր մակրոն Աշխատանքային գրքույկ_Բացել այս ֆայլը – և խնդիրը լուծված է:

Ես ուզում եմ անմիջապես զգուշացնել ձեզ, որ Scheduler-ի հետ աշխատելը կարող է պահանջել օգտվողի առաջադեմ իրավունքներ, այնպես որ, եթե գրասենյակում չեք կարող գտնել ստորև նկարագրված հրամաններն ու գործառույթները ձեր աշխատանքային համակարգչում, դիմեք ձեր ՏՏ մասնագետներին օգնության համար:

Ժամանակացույցի գործարկում

Այսպիսով, եկեք սկսենք ժամանակացույցը: Դա անելու համար կարող եք կամ.

  • Աջ սեղմեք կոճակի վրա սկիզբ եւ ընտրեք Համակարգչային կառավարում (Համակարգչային կառավարում)
  • Ընտրեք կառավարման վահանակում. Ադմինիստրացիա – Առաջադրանքների ժամանակացույց (Կառավարման վահանակ — Վարչական գործիքներ — Առաջադրանքների ժամանակացույց)
  • Ընտրեք հիմնական ընտրացանկից Սկիզբ – Աքսեսուարներ – Համակարգի գործիքներ – Առաջադրանքների ժամանակացույց
  • Սեղմեք ստեղնաշարի կարճուղի Նվաճել+Rմուտքագրեք taskschd.msc եւ սեղմեք Մտնել

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

Ժամանակին մակրո գործարկել

Առաջադրանք ստեղծեք

Պարզ քայլ առ քայլ հրաշագործի միջոցով նոր առաջադրանք ստեղծելու համար սեղմեք հղման վրա Ստեղծեք պարզ առաջադրանք (Ստեղծել հիմնական առաջադրանք) աջ վահանակում:

Վիզարդի առաջին քայլում մուտքագրեք ստեղծվելիք առաջադրանքի անունը և նկարագրությունը.

Ժամանակին մակրո գործարկել

Կտտացրեք կոճակը հաջորդ (Հաջորդ) և հաջորդ քայլում մենք ընտրում ենք ձգան՝ գործարկման հաճախականությունը կամ իրադարձություն, որը կգործարկի մեր առաջադրանքը (օրինակ՝ միացնել համակարգիչը).

Ժամանակին մակրո գործարկել

Եթե ​​ընտրեցիք Օրական (Ամեն օր), ապա հաջորդ քայլում դուք պետք է ընտրեք կոնկրետ ժամը, հաջորդականության մեկնարկի ամսաթիվը և քայլը (յուրաքանչյուր 2-րդ օրը, 5-րդ օրը և այլն).

Ժամանակին մակրո գործարկել

Հաջորդ քայլը գործողություն ընտրելն է. Գործարկել ծրագիրը (Սկսել ծրագիր):

Ժամանակին մակրո գործարկել

Եվ վերջապես, ամենահետաքրքիրն այն է, թե կոնկրետ ինչ է պետք բացել.

Ժամանակին մակրո գործարկել

Է Ծրագիր կամ սցենար (Ծրագիր/սցենար) դուք պետք է մուտքագրեք Microsoft Excel-ի ուղին որպես ծրագիր, այսինքն ուղղակիորեն դեպի Excel գործարկվող: Windows-ի և Office-ի տարբեր տարբերակներով տարբեր համակարգիչներում այս ֆայլը կարող է լինել տարբեր թղթապանակներում, ուստի այստեղ կան մի քանի եղանակներ, որոնց համար կարող եք պարզել դրա գտնվելու վայրը.

  • Աջ սեղմեք պատկերակի վրա (դյուրանցում) Excel-ը աշխատասեղանին կամ առաջադրանքների տողում գործարկելու համար և ընտրեք հրամանը նյութեր (Հատկություններ), և այնուհետև բացվող պատուհանում պատճենեք ուղին տողից թիրախ:

    Ժամանակին մակրո գործարկել                      Ժամանակին մակրո գործարկել

  • Բացեք Excel-ի ցանկացած աշխատանքային գիրք, ապա բացեք Task Manager (Առաջադրանքների կառավարիչ) հրելով Ctrl+ալտ+From և աջ սեղմելով տողի վրա Microsoft Excel- ը, ընտրեք հրաման նյութեր (Հատկություններ). Բացվող պատուհանում կարող եք պատճենել ուղին, չմոռանալով դրան ավելացնել հետադարձ կտրվածք և վերջում EXCEL.EXE:

    Ժամանակին մակրո գործարկել              Ժամանակին մակրո գործարկել

  • Բացեք Excel-ը, բացեք Visual Basic խմբագրիչը ստեղնաշարի դյուրանցմամբ ալտ+F11, բաց վահանակ Անմիջական համադրություն Ctrl+G, մուտքագրեք հրամանը դրա մեջ.

    ? Application.Path

    … և կտտացրեք Մտնել

    Ժամանակին մակրո գործարկել

    Պատճենեք ստացված ուղին, չմոռանալով դրան ավելացնել հետադարձ կտրվածք և վերջում EXCEL.EXE.

Է Ավելացնել փաստարկներ (պարտադիր) (Ավելացնել փաստարկներ (ըստ ցանկության)) դուք պետք է մտցնեք դեպի գրքի ամբողջական ուղին այն մակրոյով, որը մենք ցանկանում ենք բացել:

Երբ ամեն ինչ մուտքագրվի, ապա սեղմեք հաջորդ եւ ապա Ավարտել (Ավարտել). Առաջադրանքը պետք է ավելացվի ընդհանուր ցանկին.

Ժամանակին մակրո գործարկել

Ստեղծված առաջադրանքը հարմար է կառավարել՝ օգտագործելով աջ կողմում գտնվող կոճակները։ Այստեղ դուք կարող եք փորձարկել առաջադրանքը՝ այն անմիջապես գործարկելով (վազել)առանց սպասելու նշված ժամին։ Դուք կարող եք ժամանակավորապես անջատել առաջադրանքը (Անջատել)այնպես, որ այն դադարի աշխատել որոշակի ժամանակահատվածով, ինչպիսին է ձեր արձակուրդը: Դե, դուք միշտ կարող եք փոխել պարամետրերը (ամսաթվերը, ժամը, ֆայլի անունը) կոճակի միջոցով նյութեր (Հատկություններ).

Ֆայլ բացելու համար ավելացրեք մակրո

Այժմ մնում է մեր գրքում կախել ֆայլի բաց իրադարձության վրա մեզ անհրաժեշտ մակրոյի գործարկումը: Դա անելու համար բացեք գիրքը և ստեղնաշարի դյուրանցման միջոցով գնացեք Visual Basic խմբագրիչ ալտ+F11 կամ կոճակները Visual Basic ականջակալ երեվակիչ (մշակող). Վերևի ձախ անկյունում բացվող պատուհանում դուք պետք է գտնեք մեր ֆայլը ծառի վրա և կրկնակի սեղմեք մոդուլը բացելու համար: Այս գիրքը (Այս աշխատանքային գիրքը).

Եթե ​​դուք չեք տեսնում այս պատուհանը Visual Basic-ի խմբագրիչում, ապա այն կարող եք բացել ցանկի միջոցով Դիտել — Project Explorer.

Բացվող մոդուլի պատուհանում ավելացրեք գրքի բաց իրադարձությունների մշակիչ՝ ընտրելով այն վերևի բացվող ցուցակներից։ Աշխատանքային տետր и բացհամապատասխանաբար.

Ժամանակին մակրո գործարկել

Էկրանի վրա պետք է հայտնվի ընթացակարգի ձևանմուշ: Աշխատանքային գրքույկ_Բացել, որտեղ տողերի միջև Մասնավոր ենթ и Վերջ Sub և դուք պետք է տեղադրեք այն VBA հրամանները, որոնք պետք է ավտոմատ կերպով կատարվեն Excel-ի այս աշխատանքային գիրքը բացելիս, երբ ժամանակացույցը բացում է այն ըստ ժամանակացույցի: Ահա մի քանի օգտակար տարբերակներ՝ օվերկլոկավորման համար.

  • This Workbook.RefreshAll – Թարմացնում է արտաքին տվյալների բոլոր հարցումները, Power Query հարցումները և PivotTables-ը: Առավել բազմակողմանի տարբերակը. Պարզապես մի մոռացեք լռելյայն թույլ տալ կապեր արտաքին տվյալների հետ և թարմացնել հղումները միջոցով Ֆայլ – Ընտրանքներ – Վստահության կենտրոն – Վստահության կենտրոնի ընտրանքներ – Արտաքին բովանդակություն, հակառակ դեպքում, երբ բացեք գիրքը, կհայտնվի ստանդարտ նախազգուշացում, և Excel-ը, առանց որևէ բան թարմացնելու, կսպասի ձեր օրհնությանը կոճակի վրա սեղմելու տեսքով։ Միացնել բովանդակությունը (Միացնել բովանդակությունը):

    Ժամանակին մակրո գործարկել

  • ActiveWorkbook.Connections («Connection_Name»). Թարմացնել — Connection_Name կապի տվյալների թարմացում:
  • Թերթեր («Թերթ 5«).Առանցքային աղյուսակներ(«Առանցքային աղյուսակ1«).PivotCache.Refresh – թարմացնելով մեկ առանցքային աղյուսակը Առանցքային աղյուսակ 1 թերթիկի վրա Sheet5.
  • Դիմում.Հաշվարկել – Excel-ի բոլոր բաց աշխատանքային գրքերի վերահաշվարկ:
  • Application.CalculateFullRebuild – բոլոր բանաձևերի հարկադիր վերահաշվարկը և բոլոր բաց աշխատանքային գրքույկների բջիջների միջև բոլոր կախվածությունների վերակառուցումը (համարժեք է բոլոր բանաձևերի նորից մուտքագրմանը):
  • Աշխատանքային թերթիկներ («Հաշվետվություն»): PrintOut - տպագիր թերթիկ Pics.
  • Զանգահարեք MyMacro-ին – գործարկել անունով մակրո MyMacro.
  • This Workbook.Save - պահպանել ընթացիկ գիրքը
  • ThisWorkbooks.SaveAs «D:ArchiveReport» & Replace (Հիմա, «:», «-») և «.xlsx» – պահել գիրքը թղթապանակում D: Արխիվ անվան տակ Pics անվանմանը կցված ամսաթիվ և ժամ:

Եթե ​​ցանկանում եք, որ մակրոն գործարկվի միայն այն ժամանակ, երբ ֆայլը բացվի Scheduler-ի կողմից առավոտյան ժամը 5:00-ին, և ոչ ամեն անգամ, երբ օգտատերը աշխատանքային օրվա ընթացքում բացում է աշխատանքային գիրքը, ապա իմաստ ունի ավելացնել ժամանակի ստուգում, օրինակ.

If Format(Now, "hh:mm") = "05:00" Ապա ThisWorkbook.RefreshAll  

Այսքանը: Մի մոռացեք պահել ձեր աշխատանքային գիրքը մակրո-միացված ձևաչափով (xlsm կամ xlsb), և դուք կարող եք ապահով փակել Excel-ը և գնալ տուն՝ թողնելով ձեր համակարգիչը միացված: Տվյալ պահին (նույնիսկ եթե ԱՀ-ն արգելափակված է), Scheduler-ը կգործարկի Excel-ը և կբացի նշված ֆայլը դրանում, և մեր մակրոն կկատարի ծրագրավորված գործողությունները: Եվ դուք կշքեղեք անկողնում, մինչ ձեր ծանր հաշվետվությունը ավտոմատ կերպով վերահաշվարկվի՝ գեղեցկություն: 🙂

  • Ինչ են մակրոները, ինչպես օգտագործել դրանք, որտեղ տեղադրել Visual Basic կոդը Excel-ում
  • Ինչպես ստեղծել ձեր սեփական մակրո հավելումը Excel-ի համար
  • Ինչպես օգտագործել անձնական մակրո աշխատանքային գրքույկը որպես գրադարան ձեր մակրոների համար Excel-ում

Թողնել գրառում