Makrosni o'z vaqtida ishga tushirish

Amalda juda keng tarqalgan holat: ma'lum bir vaqtda yoki ma'lum bir chastotada bir yoki bir nechta makroslarni ishga tushirishingiz kerak. Misol uchun, sizda yarim soat yangilanadigan katta va og'ir hisobot bor va siz ertalab ishga kelishingizdan yarim soat oldin yangilashni xohlaysiz. Yoki sizda avtomatik ravishda belgilangan chastotada elektron pochta xabarlarini yuborishi kerak bo'lgan makro mavjud. Yoki, PivotTable bilan ishlaganda, uni har 10 soniyada tezda yangilanishini xohlaysiz va hokazo.

Keling, Excel va Windows-ning buni amalga oshirish imkoniyati borligini ko'rib chiqaylik.

Makroni ma'lum chastotada ishga tushirish

Buning eng oson yo'li o'rnatilgan VBA usulidan foydalanishdir Application.OnTimeBelgilangan makroni belgilangan vaqtda ishga tushiradigan. Buni amaliy misol bilan tushunaylik.

Yorliqdagi bir xil nomdagi tugma bilan Visual Basic muharririni oching dasturchi (ishlab chiquvchi) yoki klaviatura yorlig'i Alt+F11, menyu orqali yangi modulni joylashtiring Qo'shish - modul va u erda quyidagi kodni nusxalash:

Dim TimeToRun 'global o'zgaruvchi, bu erda keyingi ish vaqti saqlanadi 'bu asosiy makros Sub MyMacro() Application.Calculate 'kitobni qayta hisoblash Range("A1").Interior.ColorIndex = Int(Rnd() * 56) 'to'ldirish tasodifiy rang bilan A1 katak :) NextRun-ga qo'ng'iroq qiling 'keyingi ish vaqtini belgilash uchun NextRun makrosini ishga tushiring. 00:00") 'joriy vaqtga 03 soniya qo'shing Application.OnTime TimeToRun, "MyMacro" 'keyingi ishga tushirishni rejalashtirish End Sub 'makros takrorlash ketma-ketligini boshlash uchun Sub Start() Takrorlash ketma-ketligini to'xtatish uchun NextRun End Sub 'makrosiga qo'ng'iroq qiling Sub Finish() Application.OnTime TimeToRun, "MyMacro", , False End Sub  

Keling, bu erda nima borligini aniqlaylik.

Birinchidan, bizga makromizning keyingi ishga tushirish vaqtini saqlaydigan o'zgaruvchi kerak - men uni chaqirdim TimeToRun. Shuni esda tutingki, ushbu o'zgaruvchining mazmuni bizning keyingi barcha makroslarimiz uchun mavjud bo'lishi kerak, shuning uchun biz buni qilishimiz kerak. global, ya'ni modulning eng boshida birinchisidan oldin e'lon qiling sub.

Keyingi bizning asosiy makromiz keladi MyMacro, asosiy vazifani bajaradigan - usul yordamida kitobni qayta hisoblash Ilova. Hisoblash. Aniqroq bo'lishi uchun men A1 katakchasidagi varaqga =TDATE() formulasini qo'shdim, unda sana va vaqt ko'rsatiladi - qayta hisoblanganda uning mazmuni ko'z o'ngimizda yangilanadi (hujayradagi soniyalar ko'rinishini yoqing). format). Qo'shimcha zavqlanish uchun men makrosga A1 katakchasini tasodifiy tanlangan rang bilan to'ldirish buyrug'ini ham qo'shdim (rang kodi 0..56 diapazonidagi butun son bo'lib, u funktsiya tomonidan yaratilgan. Rnd va butun sonli funksiyaga yaxlitlaydi Int).

Ibratli KeyingiRun oldingi qiymatga qo'shiladi TimeToRun Yana 3 soniya va keyin asosiy makrosning keyingi ishini rejalashtiradi MyMacro bu yangi vaqt uchun. Albatta, amalda siz funktsiya argumentlarini o'rnatish orqali kerakli boshqa vaqt oraliqlaridan foydalanishingiz mumkin Vaqt qiymati hh:dd:ss formatida.

Va nihoyat, qulaylik uchun yana ketma-ket ishga tushirish makroslari qo'shildi. Bosh sahifa va uning tugallanishi tugatmoq. Oxirgisi ketma-ketlikni buzish uchun to'rtinchi usul argumentidan foydalanadi. Vaqtida Teng yolg'on.

Agar makrosni ishga tushirsangiz jami Bosh sahifa, keyin butun karusel aylanadi va biz varaqda quyidagi rasmni ko'ramiz:

Siz navbati bilan makroni ishga tushirish orqali ketma-ketlikni to'xtatishingiz mumkin tugatmoq. Qulaylik uchun buyruq yordamida ikkala makrosga klaviatura yorliqlarini belgilashingiz mumkin Makroslar - Variantlar tab dasturchi (Dasturchi — Makroslar — Variantlar).

Jadval bo'yicha makrosni ishga tushirish

Albatta, yuqorida tavsiflangan hamma narsa faqat sizda Microsoft Excel ishlayotgan bo'lsa va bizning faylimiz unda ochiq bo'lsa mumkin. Endi murakkabroq ishni ko'rib chiqamiz: Excel dasturini berilgan jadval bo'yicha ishga tushirishingiz kerak, masalan, har kuni soat 5:00 da, undagi katta va murakkab hisobotni oching va undagi barcha ulanishlar va so'rovlarni yangilash kerak. ish joyiga yetguncha tayyor bo'ling 🙂

Bunday vaziyatda foydalanish yaxshiroqdir Windows rejalashtiruvchisi - Windows-ning istalgan versiyasiga maxsus o'rnatilgan dastur, jadval bo'yicha belgilangan amallarni bajarishi mumkin. Haqiqatan ham, siz uni bilmagan holda ishlatyapsiz, chunki sizning shaxsiy kompyuteringiz muntazam ravishda yangilanishlarni tekshiradi, yangi antivirus ma'lumotlar bazalarini yuklab oladi, bulutli papkalarni sinxronlashtiradi va hokazo. Bularning barchasi Schedulerning ishi. Shunday qilib, bizning vazifamiz mavjud vazifalarga Excelni ishga tushiradigan va undagi ko'rsatilgan faylni ochadigan boshqasini qo'shishdir. Va biz makromizni tadbirga osib qo'yamiz Ishchi kitobi_Ochish bu fayl - va muammo hal qilindi.

Men sizni darhol ogohlantirmoqchimanki, Rejalashtiruvchi bilan ishlash foydalanuvchining ilg'or huquqlarini talab qilishi mumkin, shuning uchun ofisda ish kompyuteringizda quyida tavsiflangan buyruqlar va funksiyalarni topa olmasangiz, yordam uchun IT mutaxassislaringizga murojaat qiling.

Rejalashtiruvchini ishga tushirish

Shunday qilib, jadval tuzuvchisini boshlaylik. Buning uchun siz quyidagilarni qilishingiz mumkin:

  • Tugmani o'ng tugmasini bosing boshlanish tanlang va tanlang Kompyuter boshqaruvi (Kompyuter boshqaruvi)
  • Boshqaruv panelida tanlang: Ma'muriyat - Vazifalarni rejalashtirish (Boshqarish paneli - Ma'muriy asboblar - Vazifalarni rejalashtiruvchi)
  • Asosiy menyudan tanlang Boshlash - Aksessuarlar - Tizim asboblari - Vazifalarni rejalashtiruvchi
  • Klaviatura yorliqlarini bosing Win+R, kiriting taskchd.msc va matbuot kiriting

Ekranda quyidagi oyna paydo bo'lishi kerak (menda inglizcha versiyasi bor, lekin sizda ham versiya bo'lishi mumkin):

Makrosni o'z vaqtida ishga tushirish

Vazifa yarating

Oddiy bosqichma-bosqich sehrgar yordamida yangi vazifa yaratish uchun havolani bosing Oddiy vazifa yarating (Asosiy vazifa yaratish) o'ng panelda.

Sehrgarning birinchi bosqichida yaratiladigan vazifaning nomi va tavsifini kiriting:

Makrosni o'z vaqtida ishga tushirish

Tugmani bosing Keyingi (Keyingisi) va keyingi bosqichda biz ishga tushirish chastotasini yoki vazifamizni ishga tushiradigan hodisani tanlaymiz (masalan, kompyuterni yoqish):

Makrosni o'z vaqtida ishga tushirish

Agar tanlagan bo'lsangiz kundalik (Kunlik), keyin keyingi bosqichda siz ma'lum vaqtni, ketma-ketlikning boshlanish sanasini va qadamni tanlashingiz kerak (har 2-kun, 5-kun va boshqalar):

Makrosni o'z vaqtida ishga tushirish

Keyingi qadam harakatni tanlashdir - Dasturni ishga tushiring (Dasturni ishga tushirish):

Makrosni o'z vaqtida ishga tushirish

Va nihoyat, eng qiziq narsa - aynan nimani ochish kerak:

Makrosni o'z vaqtida ishga tushirish

In Dastur yoki skript (Dastur/skript) Microsoft Excelga dastur sifatida, ya'ni to'g'ridan-to'g'ri Excelning bajariladigan fayliga yo'lni kiritishingiz kerak. Windows va Office-ning turli versiyalari bo'lgan turli kompyuterlarda bu fayl turli papkalarda bo'lishi mumkin, shuning uchun uning joylashuvini aniqlashning bir necha yo'li mavjud:

  • Ish stolida yoki vazifalar panelida Excelni ishga tushirish uchun belgini (yorliq) o'ng tugmasini bosing va buyruqni tanlang. Materiallar (Xususiyatlar), va keyin ochilgan oynada chiziqdan yo'lni nusxalash maqsad:

    Makrosni o'z vaqtida ishga tushirish                      Makrosni o'z vaqtida ishga tushirish

  • Har qanday Excel ish kitobini oching, keyin oching Vazifa menejeri (Vazifa menejeri) itarish Ctrl+Alt+From va chiziqni o'ng tugmasini bosib Microsoft Excel, buyruqni tanlang Materiallar (Xususiyatlar). Ochilgan oynada siz yo'lni nusxalashingiz mumkin, unga teskari chiziq qo'shishni unutmang va oxirida EXCEL.EXE:

    Makrosni o'z vaqtida ishga tushirish              Makrosni o'z vaqtida ishga tushirish

  • Excelni oching, klaviatura yorlig'i bilan Visual Basic muharririni oching Alt+F11, panelni oching Darhol ning birikmasi Ctrl+G, unga buyruqni kiriting:

    ? Ilova.Yoʻl

    ... va ustiga bosing kiriting

    Makrosni o'z vaqtida ishga tushirish

    Olingan yo'lni nusxalash, unga teskari chiziq qo'shishni unutmang va oxirida EXCEL.EXE.

In Argumentlar qo'shish (ixtiyoriy) (Argumentlar qo'shing (ixtiyoriy)) biz ochmoqchi bo'lgan makros bilan kitobga to'liq yo'lni kiritishingiz kerak.

Hamma narsa kiritilganda, ustiga bosing Keyingi undan keyin tugatmoq (tugatish). Vazifa umumiy ro'yxatga kiritilishi kerak:

Makrosni o'z vaqtida ishga tushirish

O'ngdagi tugmalar yordamida yaratilgan vazifani boshqarish qulay. Bu yerda siz vazifani darhol ishga tushirish orqali sinab ko'rishingiz mumkin (yugurish)belgilangan vaqtni kutmasdan. Siz vazifani vaqtincha o'chirib qo'yishingiz mumkin (O'chirish)Shunday qilib, u sizning ta'tilingiz kabi bir muddat ishlashni to'xtatadi. Xo'sh, siz har doim tugma orqali parametrlarni (sana, vaqt, fayl nomi) o'zgartirishingiz mumkin Materiallar (Xususiyatlar).

Faylni ochish uchun makro qo'shing

Endi faylni ochish hodisasida bizga kerak bo'lgan makrosni ishga tushirishni kitobimizga osib qo'yish qoladi. Buning uchun kitobni oching va klaviatura yorlig'i yordamida Visual Basic muharririga o'ting Alt+F11 yoki tugmalar Visual Basic tab dasturchi (ishlab chiquvchi). Yuqori chap burchakda ochilgan oynada siz daraxtdagi faylimizni topishingiz va modulni ochish uchun ikki marta bosishingiz kerak. Ushbu kitob (Ushbu ish kitobi).

Agar siz ushbu oynani Visual Basic muharririda ko'rmasangiz, uni menyu orqali ochishingiz mumkin Ko'rish - Loyiha Explorer.

Ochilgan modul oynasida, yuqoridagi ochiladigan ro'yxatlardan tanlab, kitobni ochish hodisasi ishlovchisini qo'shing. Ish kitobi и ochiqmos ravishda:

Makrosni o'z vaqtida ishga tushirish

Ekranda protsedura shabloni paydo bo'lishi kerak. Ishchi kitobi_Ochish, satrlar orasidagi joy Shaxsiy sub и End Sub va ushbu Excel ish kitobi ochilganda, Scheduler uni jadvalga muvofiq ochganda avtomatik ravishda bajarilishi kerak bo'lgan VBA buyruqlarini kiritishingiz kerak. Bu erda overclock uchun bir nechta foydali variantlar mavjud:

  • This Workbook.RefreshAll – Barcha tashqi maʼlumotlar soʻrovlarini, Power Query soʻrovlarini va PivotTablelarni yangilaydi. Eng ko'p qirrali variant. Faqat sukut bo'yicha tashqi ma'lumotlarga ulanishga ruxsat berishni va havolalarni yangilashni unutmang Fayl - Variantlar - Ishonchli markaz - Ishonchli markaz parametrlari - Tashqi tarkib, aks holda, kitobni ochganingizda, standart ogohlantirish paydo bo'ladi va Excel hech narsani yangilamasdan, tugmani bosish shaklida sizning marhamatingizni kutadi. Kontentni yoqish (Kontentni yoqish):

    Makrosni o'z vaqtida ishga tushirish

  • ActiveWorkbook.Connections (“Connection_Name”). Yangilash — Connection_Name ulanishidagi ma'lumotlarni yangilash.
  • Varaqlar("Vaq 5").Pivot jadvallari("Yigʻma jadval1«).PivotKesh. Yangilash – nomli bitta pivot jadvalni yangilash 1-jadval varaqda Jadval5.
  • Ilova. Hisoblash - barcha ochiq Excel ishchi kitoblarini qayta hisoblash.
  • Application.CalculateFullRebuild - barcha formulalarni majburiy qayta hisoblash va barcha ochiq ishchi kitoblardagi hujayralar orasidagi barcha bog'liqliklarni qayta tiklash (barcha formulalarni qayta kiritishga teng).
  • Ishchi varaqlar (“Hisobot”).PrintOut - chop etish varag'i Rasm.
  • MyMacro-ga qo'ng'iroq qiling - nomli makrosni ishga tushiring MyMacro.
  • Bu ish kitobi. Saqlash – joriy kitobni saqlang
  • ThisWorkbooks.SaveAs “D:ArchiveReport” & Almashtirish(Hozir, “:”, “-“) va “.xlsx” – kitobni jildga saqlang D: Arxiv nomi ostida Rasm sana va vaqt nomiga qo'shilgan holda.

Agar siz makrosning faqat ish kuni davomida ish kitobini ochganda emas, balki dasturchi tomonidan fayl ertalab soat 5:00 da ochilganda bajarilishini istasangiz, vaqtni tekshirishni qo'shish mantiqan to'g'ri keladi, masalan:

Agar Format(Hozir, "hh:dd") = "05:00" bo'lsa, ThisWorkbook.RefreshAll  

Ana xolos. Ish kitobingizni so'l formatida (xlsm yoki xlsb) saqlashni unutmang va siz Excelni xavfsiz yopishingiz va kompyuteringizni yoqilgan holda qoldirib, uyga qaytishingiz mumkin. Ma'lum bir vaqtda (kompyuter qulflangan bo'lsa ham) Scheduler Excel dasturini ishga tushiradi va undagi ko'rsatilgan faylni ochadi va bizning makrosimiz dasturlashtirilgan amallarni bajaradi. Va sizning og'ir hisobotingiz avtomatik ravishda qayta hisoblanganda yotoqda hashamatli bo'lasiz - go'zallik! 🙂

  • Makroslar nima, ulardan qanday foydalanish, Excelda Visual Basic kodini qayerga kiritish kerak
  • Excel uchun o'zingizning makro plaginingizni qanday yaratishingiz mumkin
  • Shaxsiy makro ish kitobini Excelda makrolaringiz uchun kutubxona sifatida qanday ishlatish kerak

Leave a Reply