მაკროს დროულად გაშვება

ძალიან გავრცელებული შემთხვევა პრაქტიკაში: თქვენ უნდა გაუშვათ ერთი ან მეტი თქვენი მაკრო მოცემულ დროს ან გარკვეულ სიხშირეზე. მაგალითად, თქვენ გაქვთ დიდი და მძიმე ანგარიში, რომელიც განახლდება ნახევარი საათით და გსურთ განახლების გაშვება დილით სამსახურში მისვლამდე ნახევარი საათით ადრე. ან გაქვთ მაკრო, რომელიც ავტომატურად უნდა გაუგზავნოს წერილებს თანამშრომლებს განსაზღვრული სიხშირით. ან PivotTable-თან მუშაობისას გსურთ, რომ ის განახლდეს ყოველ 10 წამში ერთხელ და ა.შ.

მოდი ვნახოთ, რა აქვთ Excel-ს და Windows-ს ამის განხორციელების შესაძლებლობა.

მაკროს გაშვება მოცემულ სიხშირეზე

ამის გაკეთების უმარტივესი გზაა ჩაშენებული VBA მეთოდის გამოყენება განაცხადი.დროულადან რომელიც აწარმოებს მითითებულ მაკროს მითითებულ დროს. მოდით გავიგოთ ეს პრაქტიკული მაგალითით.

გახსენით Visual Basic რედაქტორი იმავე სახელწოდების ღილაკით ჩანართზე დეველოპერი (დეველოპერი) ან კლავიატურის მალსახმობი Alt+F11, ჩადეთ ახალი მოდული მენიუში ჩასმა – მოდული და დააკოპირეთ შემდეგი კოდი იქ:

Dim TimeToRun 'გლობალური ცვლადი სადაც ინახება შემდეგი გაშვების დრო 'ეს არის მთავარი მაკრო Sub MyMacro() Application.Calculate 'ხელახლა გამოთვალეთ წიგნი Range("A1").Interior.ColorIndex = Int(Rnd() * 56) 'შევსება უჯრედი 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, რომელიც შეასრულებს ძირითად დავალებას – წიგნის ხელახალი გამოთვლა მეთოდით განაცხადი.გამოთვალეთ. უფრო გასაგებად, მე დავამატე ფორმულა =TDATE() A1 უჯრედის ფურცელზე, რომელიც აჩვენებს თარიღს და დროს - როდესაც ხელახლა გამოითვლება, მისი შინაარსი განახლდება თვალწინ (უბრალოდ ჩართეთ უჯრედში წამების ჩვენება. ფორმატი). დამატებითი გართობისთვის მაკროში ასევე დავამატე ბრძანება A1 უჯრედის შევსების შემთხვევით შერჩეული ფერით (ფერის კოდი არის მთელი რიცხვი 0..56 დიაპაზონში, რომელიც გენერირებულია ფუნქციით. რნდ და ამრგვალდება მთელი რიცხვის ფუნქციამდე Int).

მაკრო შემდეგი გაშვება ემატება წინა ღირებულებას TimeToRun კიდევ 3 წამი და შემდეგ დაგეგმავს მთავარი მაკროს მომდევნო გაშვებას MyMacro ამ ახალი დროისთვის. რა თქმა უნდა, პრაქტიკაში, თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი სხვა დროის ინტერვალი, რომელიც გჭირდებათ ფუნქციის არგუმენტების დაყენებით TimeValue ფორმატში hh:mm:ss.

და ბოლოს, მხოლოდ მოხერხებულობისთვის, დაემატა მეტი თანმიმდევრობის გაშვების მაკრო. მთავარი და მისი დასრულება ფერი. ბოლო იყენებს მეოთხე მეთოდის არგუმენტს თანმიმდევრობის გასარღვევად. წლის დრო თანაბარი ყალბი.

სულ თუ გაუშვით მაკრო მთავარი, მაშინ მთელი ეს კარუსელი დატრიალდება და ფურცელზე ვნახავთ შემდეგ სურათს:

თქვენ შეგიძლიათ შეაჩეროთ თანმიმდევრობა მაკრო, შესაბამისად, გაშვებით ფერი. მოხერხებულობისთვის, ბრძანების გამოყენებით შეგიძლიათ ორივე მაკროს კლავიატურის მალსახმობები მიანიჭოთ მაკროები - ოფციები tab დეველოპერი (დეველოპერი - მაკროები - ოფციები).

მაკროს გაშვება გრაფიკით

რა თქმა უნდა, ზემოთ აღწერილი ყველაფერი შესაძლებელია მხოლოდ იმ შემთხვევაში, თუ გაშვებული გაქვთ Microsoft Excel და მასში ჩვენი ფაილი ღიაა. ახლა მოდით შევხედოთ უფრო რთულ შემთხვევას: თქვენ უნდა გაუშვათ Excel მოცემული გრაფიკის მიხედვით, მაგალითად, ყოველდღე 5:00 საათზე, გახსენით მასში დიდი და რთული ანგარიში და განაახლეთ მასში არსებული ყველა კავშირი და მოთხოვნა ისე, რომ მზად იყავი სამსახურში მისვლამდე 🙂

ასეთ სიტუაციაში უმჯობესია გამოიყენოთ Windows Scheduler – პროგრამა სპეციალურად ჩაშენებული Windows-ის ნებისმიერ ვერსიაში, რომელსაც შეუძლია განსაზღვრული მოქმედებების შესრულება გრაფიკით. ფაქტობრივად, თქვენ უკვე იყენებთ მას ისე, რომ არ იცოდეთ, რადგან თქვენი კომპიუტერი რეგულარულად ამოწმებს განახლებებს, ჩამოტვირთავს ახალ ანტივირუსულ მონაცემთა ბაზებს, სინქრონიზებს ღრუბლოვან საქაღალდეებს და ა.შ. ეს ყველაფერი Scheduler-ის საქმეა. ასე რომ, ჩვენი ამოცანაა დავამატოთ არსებულ ამოცანებს კიდევ ერთი, რომელიც გაუშვებს Excel-ს და გახსნის მასში მითითებულ ფაილს. და ჩვენ დავკიდებთ ჩვენს მაკროს ღონისძიებაზე სამუშაო წიგნი_გახსნა ეს ფაილი - და პრობლემა მოგვარებულია.

მინდა დაუყოვნებლივ გაგაფრთხილოთ, რომ Scheduler-თან მუშაობამ შეიძლება მოითხოვოს მომხმარებლის გაფართოებული უფლებები, ასე რომ, თუ თქვენ ვერ იპოვით ქვემოთ აღწერილი ბრძანებებს და ფუნქციებს თქვენს სამუშაო კომპიუტერზე ოფისში, დაუკავშირდით თქვენს IT სპეციალისტებს დახმარებისთვის.

Scheduler-ის გაშვება

ასე რომ, დავიწყოთ განრიგი. ამისათვის თქვენ შეგიძლიათ:

  • დააჭირეთ ღილაკს მარჯვენა ღილაკით დასაწყისი და აირჩიე კომპიუტერის მართვა (Კომპიუტერის მართვა)
  • აირჩიეთ საკონტროლო პანელში: ადმინისტრაცია – დავალების განრიგი (პანელი - ადმინისტრაციული ინსტრუმენტები - დავალების განრიგი)
  • აირჩიეთ მთავარი მენიუდან დაწყება – აქსესუარები – სისტემის ხელსაწყოები – დავალების განრიგი
  • კლავიატურის კლავიშთა კლავიშ მოიგე+Rშედი ამოცანები chd.msc და დააჭირეთ შეიყვანეთ

შემდეგი ფანჯარა უნდა გამოჩნდეს ეკრანზე (მე მაქვს ინგლისური ვერსია, მაგრამ თქვენ ასევე შეგიძლიათ გქონდეთ ვერსია):

მაკროს დროულად გაშვება

შექმენით დავალება

მარტივი ნაბიჯ-ნაბიჯ ოსტატის გამოყენებით ახალი ამოცანის შესაქმნელად დააწკაპუნეთ ბმულზე შექმენით მარტივი დავალება (შექმენით ძირითადი ამოცანა) მარჯვენა პანელში.

ოსტატის პირველ საფეხურზე შეიყვანეთ შექმნილი დავალების სახელი და აღწერა:

მაკროს დროულად გაშვება

დააჭირეთ ღილაკს შემდეგი (შემდეგი) და შემდეგ ეტაპზე ვირჩევთ ტრიგერს - გაშვების სიხშირეს ან მოვლენას, რომელიც დაიწყებს ჩვენს ამოცანას (მაგალითად, კომპიუტერის ჩართვა):

მაკროს დროულად გაშვება

თუ ავირჩიეთ დღიური (ყოველდღიურად), შემდეგ ეტაპზე თქვენ უნდა აირჩიოთ კონკრეტული დრო, თანმიმდევრობის დაწყების თარიღი და ნაბიჯი (ყოველ მე-2 დღეს, მე-5 დღეს და ა.შ.):

მაკროს დროულად გაშვება

შემდეგი ნაბიჯი არის მოქმედების არჩევა - გაუშვით პროგრამა (პროგრამის დაწყება):

მაკროს დროულად გაშვება

და ბოლოს, ყველაზე საინტერესო ის არის, თუ რა უნდა გაიხსნას:

მაკროს დროულად გაშვება

ამ პროგრამა ან სკრიპტი (პროგრამა/სკრიპტი) თქვენ უნდა შეიყვანოთ გზა Microsoft Excel-ში, როგორც პროგრამა, ანუ პირდაპირ Excel შესრულებადში. Windows-ისა და Office-ის სხვადასხვა ვერსიის სხვადასხვა კომპიუტერზე, ეს ფაილი შეიძლება იყოს სხვადასხვა საქაღალდეში, ასე რომ, აქ არის რამდენიმე გზა, რათა გაიგოთ მისი მდებარეობა:

  • დააწკაპუნეთ მაუსის მარჯვენა ღილაკით ხატულაზე (მალსახმობი), რათა გაუშვათ Excel დესკტოპზე ან დავალების პანელზე და აირჩიეთ ბრძანება მასალები (Თვისებები)და შემდეგ ფანჯარაში, რომელიც იხსნება, დააკოპირეთ ბილიკი ხაზიდან სამიზნე:

    მაკროს დროულად გაშვება                      მაკროს დროულად გაშვება

  • გახსენით ნებისმიერი Excel სამუშაო წიგნი, შემდეგ გახსენით პროცესების მენეჯერი (Task Manager) (Პროცესების ადმინისტრატორი) უბიძგებს Ctrl+Alt+დან და ხაზზე მარჯვენა ღილაკით Microsoft Excel, აირჩიეთ ბრძანება მასალები (Თვისებები). ფანჯარაში, რომელიც იხსნება, შეგიძლიათ დააკოპიროთ გზა, არ უნდა დაგვავიწყდეს, რომ დაამატოთ მას უკანა ხაზი და EXCEL.EXE ბოლოს:

    მაკროს დროულად გაშვება              მაკროს დროულად გაშვება

  • გახსენით Excel, გახსენით Visual Basic რედაქტორი კლავიატურის მალსახმობით Alt+F11, გახსენით პანელი სასწრაფო კომბინაცია Ctrl+G, შეიყვანეთ მასში ბრძანება:

    ? აპლიკაცია.გზა

    … და დააწკაპუნეთ შეიყვანეთ

    მაკროს დროულად გაშვება

    დააკოპირეთ მიღებული გზა, არ უნდა დაგვავიწყდეს, რომ დაამატოთ მას უკანა ხაზი და EXCEL.EXE ბოლოს.

ამ არგუმენტების დამატება (არასავალდებულო) (არგუმენტების დამატება (სურვილისამებრ)) თქვენ უნდა ჩასვათ წიგნის სრული გზა იმ მაკროთი, რომლის გახსნაც გვინდა.

როდესაც ყველაფერი შეიყვანება, დააწკაპუნეთ შემდეგი და მაშინ ფერი (დასრულება). დავალება უნდა დაემატოს ზოგად სიას:

მაკროს დროულად გაშვება

მოსახერხებელია შექმნილი ამოცანის მართვა მარჯვენა ღილაკების გამოყენებით. აქ შეგიძლიათ შეამოწმოთ დავალება მისი დაუყოვნებლივ გაშვებით (გაშვება)მითითებული დროის მოლოდინის გარეშე. შეგიძლიათ დროებით გამორთოთ დავალება (გამორთვა)ისე, რომ მან შეწყვიტოს მუშაობა გარკვეული პერიოდის განმავლობაში, როგორიცაა თქვენი შვებულება. ისე, თქვენ ყოველთვის შეგიძლიათ შეცვალოთ პარამეტრები (თარიღები, დრო, ფაილის სახელი) ღილაკის საშუალებით მასალები (Თვისებები).

დაამატეთ მაკრო ფაილის გასახსნელად

ახლა რჩება ჩვენს წიგნში ჩავკიდოთ მაკრო, რომელიც გვჭირდება ფაილის ღია ღონისძიებაზე. ამისათვის გახსენით წიგნი და გადადით Visual Basic-ის რედაქტორში კლავიატურის მალსახმობის გამოყენებით Alt+F11 ან ღილაკები Visual Basic tab დეველოპერი (დეველოპერი). ფანჯარაში, რომელიც იხსნება ზედა მარცხენა კუთხეში, თქვენ უნდა იპოვოთ ჩვენი ფაილი ხეზე და ორჯერ დააწკაპუნოთ მოდულის გასახსნელად ეს წიგნი (ეს სამუშაო წიგნი).

თუ ამ ფანჯარას ვერ ხედავთ Visual Basic რედაქტორში, მაშინ შეგიძლიათ გახსნათ იგი მენიუდან ხედი — Project Explorer.

მოდულის ფანჯარაში, რომელიც იხსნება, დაამატეთ წიგნის გახსნის ღონისძიების დამმუშავებელი მისი არჩევით ზედა ჩამოსაშლელი სიებიდან. სამუშაო წიგნი и ღიაა, შესაბამისად:

მაკროს დროულად გაშვება

ეკრანზე უნდა გამოჩნდეს პროცედურის შაბლონი. სამუშაო წიგნი_გახსნა, სადაც ხაზებს შორის პირადი ქვე и ბოლო Sub და თქვენ უნდა ჩასვათ ის VBA ბრძანებები, რომლებიც ავტომატურად უნდა შესრულდეს Excel-ის ამ სამუშაო წიგნის გახსნისას, როდესაც Scheduler ხსნის მას გრაფიკის მიხედვით. აქ მოცემულია რამდენიმე სასარგებლო ვარიანტი გადატვირთვისთვის:

  • This Workbook.RefreshAll - განაახლებს ყველა გარე მონაცემების მოთხოვნას, Power Query-ს და PivotTables-ს. ყველაზე მრავალმხრივი ვარიანტი. უბრალოდ არ უნდა დაგვავიწყდეს ნაგულისხმევად დაუშვათ კავშირები გარე მონაცემებთან და განაახლოთ ბმულები მეშვეობით ფაილი – ოფციები – ნდობის ცენტრი – ნდობის ცენტრის პარამეტრები – გარე შინაარსი, წინააღმდეგ შემთხვევაში, წიგნის გახსნისას გამოჩნდება სტანდარტული გაფრთხილება და Excel არაფრის განახლების გარეშე დაელოდება თქვენს კურთხევას ღილაკზე დაჭერის სახით. კონტენტის ჩართვა (კონტენტის ჩართვა):

    მაკროს დროულად გაშვება

  • ActiveWorkbook.Connections („Connection_Name“). განახლება — მონაცემების განახლება Connection_Name კავშირის შესახებ.
  • ფურცლები (“Shet5").PivotTables("PivotTable1«).PivotCache.Refresh – განახლებულია ერთი კრებსითი ცხრილი დასახელებული კრებსითი ცხრილი 1 ფურცელზე Sheet5.
  • განაცხადი.გამოთვალეთ - Excel-ის ყველა ღია სამუშაო წიგნის ხელახალი გაანგარიშება.
  • განაცხადი.CalculateFullRebuild – ყველა ფორმულის იძულებითი ხელახალი გამოთვლა და ყველა ღია სამუშაო წიგნში უჯრედებს შორის ყველა დამოკიდებულების აღდგენა (ეს ექვივალენტურია ყველა ფორმულის ხელახლა შეყვანას).
  • სამუშაო ფურცლები (“ანგარიში”).PrintOut - საბეჭდი ფურცელი ფოტო.
  • დარეკეთ MyMacro – გაუშვით მაკრო სახელად MyMacro.
  • This Workbook.Save - შეინახეთ მიმდინარე წიგნი
  • ThisWorkbooks.SaveAs "D:ArchiveReport" & Replace (ახლა, ":", "-") და ".xlsx" - შეინახეთ წიგნი საქაღალდეში დ: არქივი სახელის ქვეშ ფოტო სახელს დართული თარიღი და დრო.

თუ გსურთ, რომ მაკრო შესრულდეს მხოლოდ მაშინ, როდესაც ფაილი იხსნება Scheduler-ის მიერ დილის 5:00 საათზე და არა ყოველთვის, როცა მომხმარებელი ხსნის სამუშაო წიგნს სამუშაო დღის განმავლობაში, მაშინ აზრი აქვს დროის შემოწმების დამატებას, მაგალითად:

თუ ფორმატი (ახლა, "hh:mm") = "05:00" მაშინ ThisWorkbook.RefreshAll  

Სულ ეს არის. არ დაგავიწყდეთ შეინახოთ თქვენი სამუშაო წიგნი მაკრო ჩართული ფორმატში (xlsm ან xlsb) და შეგიძლიათ უსაფრთხოდ დახუროთ Excel და წახვიდეთ სახლში, დატოვოთ თქვენი კომპიუტერი ჩართული. მოცემულ მომენტში (თუნდაც კომპიუტერი დაბლოკილია), Scheduler გაუშვებს Excel-ს და გახსნის მასში მითითებულ ფაილს და ჩვენი მაკრო შეასრულებს დაპროგრამებულ მოქმედებებს. და საწოლში იტკბებით, სანამ თქვენი მძიმე ანგარიში ავტომატურად გადაითვლება - სილამაზე! 🙂

  • რა არის მაკროები, როგორ გამოვიყენოთ ისინი, სად ჩავსვათ Visual Basic კოდი Excel-ში
  • როგორ შევქმნათ თქვენი საკუთარი მაკრო დანამატი Excel-ისთვის
  • როგორ გამოვიყენოთ პირადი მაკრო სამუშაო წიგნი, როგორც ბიბლიოთეკა თქვენი მაკროებისთვის Excel-ში

დატოვე პასუხი