Макросту өз убагында иштетүү

Практикада өтө кеңири таралган учур: сиз бир же бир нече макросуңузду белгилүү бир убакта же белгилүү бир жыштыкта ​​иштетишиңиз керек. Мисалы, сизде жарым саат жаңыртылган чоң жана оор отчет бар жана сиз эртең менен жумушка келээрден жарым саат мурун жаңыртууну каалайсыз. Же сизде белгилүү бир жыштыкта ​​кызматкерлерге электрондук каттарды автоматтык түрдө жөнөтө турган макрос бар. Же, PivotTable менен иштегенде, сиз анын ар бир 10 секунд сайын жаңыртып турушун каалайсыз жана башкалар.

Келгиле, Excel жана Windows муну ишке ашырууга кандай мүмкүнчүлүктөрү бар экенин карап көрөлү.

Берилген жыштыкта ​​макросту иштетүү

Муну жасоонун эң оңой жолу - орнотулган VBA ыкмасын колдонуу Application.OnTimeБелгиленген убакта көрсөтүлгөн макрону иштеткен. Муну практикалык мисал менен түшүнөлү.

Өтмөктөгү бирдей аталыштагы баскыч менен Visual Basic редакторун ачыңыз иштеп (Иштеп чыгуучу) же баскычтоптун жарлыгы Alt+F11, меню аркылуу жаңы модулду киргизиңиз Кыстаруу – модуль жана ал жерде төмөнкү кодду көчүрүү:

Dim TimeToRun 'кийинки иштөө убактысы сакталган глобалдык өзгөрмө 'бул негизги макросу Sub MyMacro() Application.Calculate 'китептин диапазонун кайра эсептеңиз("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 'макросу кайталануучу ырааттуулукту баштоо үчүн Sub Start() Кайталоо ырааттуулугун токтотуу үчүн NextRun End Sub 'макросун чакырыңыз Sub Finish() Application.OnTime TimeToRun, "MyMacro", , False End Sub  

Келгиле, бул жерде эмне бар экенин билели.

Биринчиден, бизге макростун кийинки иштөө убактысын сактай турган өзгөрмө керек - мен аны чакырдым TimeToRun. Сураныч, бул өзгөрмөнүн мазмуну кийинки бардык макроолорубуз үчүн жеткиликтүү болушу керек экенин эске алыңыз, ошондуктан биз аны жасашыбыз керек. дүйнөлүк, башкача айтканда, модулдун эң башында биринчиден мурун жарыялаңыз Sub.

Кийинки биздин негизги макробуз келет MyMacro, негизги милдетти аткара турган - ыкмасын колдонуу менен китепти кайра эсептөө Колдонмо. Эсептөө. Түшүнүктүү болушу үчүн, мен A1 уячасындагы баракка =TDATE() формуласын коштум, анда күн жана убакыт көрсөтүлөт - кайра эсептегенде анын мазмуну биздин көз алдыбызда жаңыртылат (уячадагы секунданын дисплейин күйгүзүңүз формат). Кошумча көңүл ачуу үчүн мен макроко A1 уячасын туш келди тандалган түс менен толтуруу буйругун коштум (түс коду функция тарабынан түзүлгөн 0..56 диапазонундагы бүтүн сан. Rnd жана бүтүн сан функциясына чейин тегеретет Int).

макро NextRun мурунку мааниге кошумчалайт TimeToRun дагы 3 секунд, андан кийин негизги макронун кийинки иштөөсүн пландаштырат MyMacro бул жаңы убакыт үчүн. Албетте, иш жүзүндө, сиз функциянын аргументтерин коюу менен каалаган башка убакыт аралыгын колдоно аласыз TimeValue сс:мм:сс форматында.

Акыр-аягы, ынгайлуу болуу үчүн, көбүрөөк ырааттуу ишке киргизүү макростору кошулду. Home жана анын аякташы бүтүрүү. Акыркысы ырааттуулукту бузуу үчүн төртүнчү ыкма аргументин колдонот. Убактысында келүү бирдей False.

Макросту иштетсеңиз, бардыгы Home, анда бул карусель айланат жана биз баракта төмөнкү сүрөттү көрөбүз:

Тиешелүүлүгүнө жараша макрону иштетүү менен ырааттуулукту токтото аласыз бүтүрүү. Ыңгайлуу болуу үчүн, сиз буйрукту колдонуп, эки макроско клавиатура жарлыктарын дайындай аласыз Макростар – Параметрлер табулатура иштеп (Иштеп чыгуучу — Макростар — Параметрлер).

График боюнча макросту иштетүү

Албетте, жогоруда сүрөттөлгөн нерселердин баары сизде Microsoft Excel иштеп жаткан болсо жана анда биздин файл ачык болсо гана мүмкүн. Эми бир кыйла татаал учурду карап көрөлү: Excel программасын берилген график боюнча иштетишиңиз керек, мисалы, күн сайын саат 5:00дө, андагы чоң жана татаал отчетту ачып, андагы бардык байланыштарды жана сурамдарды жаңыртыңыз. биз жумушка келгенче даяр болгула 🙂

Мындай кырдаалда аны колдонуу жакшы Windows Scheduler – Windowsтун каалаган версиясына атайын орнотулган программа, ал график боюнча көрсөтүлгөн аракеттерди аткара алат. Чынында, сиз аны билип туруп эле колдонуп жатасыз, анткени сиздин компьютериңиз такай жаңыланууларды текшерип турат, жаңы антивирус маалымат базаларын жүктөйт, булут папкаларын синхронизациялайт ж.б. Мунун баары Графикчинин иши. Ошентип, биздин милдет - Excelди ишке киргизе турган жана андагы көрсөтүлгөн файлды ача турган башка тапшырмаларды кошуу. Жана биз иш-чарага макросубузду илип коёбуз Иш китеби_Ачык бул файл - жана маселе чечилди.

Мен сизге дароо эскертип койгум келет, Пландаштыруучу менен иштөө өркүндөтүлгөн колдонуучунун укуктарын талап кылышы мүмкүн, андыктан төмөндө сүрөттөлгөн буйруктарды жана функцияларды офисте жумуш компьютериңизден таба албасаңыз, жардам алуу үчүн IT адистерине кайрылыңыз.

Пландаштыруучу ишке киргизилүүдө

Ошентип, Графикти баштайлы. Бул үчүн, сиз:

  • Оң баскычты чыкылдатыңыз баштоо тандап ЭЭМ үчүн башкаруу (Компьютерди башкаруу)
  • Башкаруу панелинен тандаңыз: Башкаруу – Тапшырма пландоочу (Башкаруу панели — Административдик куралдар — Тапшырма пландоочу)
  • Негизги менюдан тандаңыз Баштоо - Аксессуарлар - Тутум куралдары - Тапшырма пландоочу
  • Пресс-баскыч жеңүү+R, кирүү taskchd.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 иш китебин ачып, андан кийин ачыңыз Тапшырмаларды башкаргыч (Тапшырма менеджери) түртүп Ctrl+Alt+From жана сызыкты оң баскыч менен чыкылдатуу Microsoft Excel, буйрук тандаңыз материалдар (Касиеттери). Ачылган терезеде жолду көчүрө аласыз, ага тескери сызыкты жана аягында EXCEL.EXE кошууну унутпаңыз:

    Макросту өз убагында иштетүү              Макросту өз убагында иштетүү

  • Excelди ачыңыз, клавиатура жарлыгы менен Visual Basic редакторун ачыңыз Alt+F11, панелди ачуу дароо айкалышы Ctrl+G, ага буйрук киргизиңиз:

    ? Application.Path

    … жана басыңыз кирүү

    Макросту өз убагында иштетүү

    Натыйжада жолду көчүрүү, ага тескери сызыкты жана аягында EXCEL.EXE кошууну унутпаңыз.

Ичинде Аргументтерди кошуу (милдеттүү эмес) (Аргументтер кошуу (милдеттүү эмес)) биз ачкыбыз келген макрос менен китепке толук жолду киргизишиңиз керек.

Баары киргизилгенден кийин, чыкылдатыңыз кийинки жана андан кийин бүтүрүү (Бүттү). Милдет жалпы тизмеге кошулушу керек:

Макросту өз убагында иштетүү

Түзүлгөн тапшырманы оң жактагы баскычтар менен башкаруу ыңгайлуу. Бул жерде сиз тапшырманы дароо иштетүү менен сынай аласыз (чуркоо)белгиленген убакытты күтпөстөн. Сиз тапшырманы убактылуу өчүрө аласыз (Өчүрүү)ал сиздин каникулуңуз сыяктуу белгилүү бир убакытка иштебей калат. Ооба, сиз ар дайым баскычы аркылуу параметрлерди (күндөрдү, убакытты, файлдын аталышын) өзгөртө аласыз материалдар (Касиеттери).

Файлды ачуу үчүн макро кошуңуз

Эми биздин китебибизге файлды ачуу окуясына керектүү макрону ишке киргизүү калды. Бул үчүн, китепти ачып, баскычтоптун жарлыгын колдонуп Visual Basic редакторуна өтүңүз Alt+F11 же баскычтар Visual Basic табулатура иштеп (Иштеп чыгуучу). Жогорку сол бурчта ачылган терезеде дарактын үстүндөгү файлыбызды таап, модулду ачуу үчүн эки жолу чыкылдатыңыз. Бул китеп (Бул Жумушчу китеп).

Эгерде сиз бул терезени Visual Basic редакторунда көрбөсөңүз, анда аны меню аркылуу ачсаңыз болот Көрүү — Project Explorer.

Ачылган модуль терезесинде жогору жагындагы ачылуучу тизмелерден тандап, китепти ачуу окуясын иштеткичти кошуңуз колдонмо иш китеби и ачыктиешелүүлүгүнө жараша:

Макросту өз убагында иштетүү

Экранда процедура шаблону пайда болушу керек. Иш китеби_Ачык, сызыктардын ортосунда Private Sub и End Sub жана бул Excel иш китеби ачылганда, графикке ылайык аны График ачканда автоматтык түрдө аткарыла турган VBA буйруктарын киргизүү керек. Бул жерде overclocking үчүн кээ бир пайдалуу параметрлер бар:

  • ThisWorkbook.RefreshAll – Бардык тышкы маалымат сурамдарын, Power Query сурамдарын жана Пивот таблицаларын жаңылайт. Эң универсалдуу вариант. Жөн гана демейки боюнча тышкы маалыматтарга туташууга уруксат берүүнү жана шилтемелерди жаңыртууну унутпаңыз Файл – Параметрлер – Ишеним борбору – Ишеним борборунун параметрлери – Тышкы мазмун, антпесе, сиз китепти ачканда, стандарттуу эскертүү пайда болот жана Excel эч нерсени жаңыртпастан, баскычты басуу түрүндө сиздин батаңызды күтөт. Мазмунду иштетүү (Мазмунду иштетүү):

    Макросту өз убагында иштетүү

  • ActiveWorkbook.Connections(“Connection_Name”).Жаңылоо — Connection_Name байланышы боюнча маалыматтарды жаңыртуу.
  • Барактар ​​(«Лист 5").Жыйынтык таблицалар("Жыйык таблица1«).PivotCache.Refresh – аталган бир пивот таблицасын жаңылоо Пивот таблица1 баракта Sheet5.
  • Колдонмо. Эсептөө – бардык ачык Excel жумушчу китептерин кайра эсептөө.
  • Application.CalculateFullRebuild – бардык формулаларды мажбурлап кайра эсептөө жана бардык ачык жумушчу китептердеги уячалардын ортосундагы бардык көз карандылыктарды калыбына келтирүү (бардык формулаларды кайра киргизүүгө барабар).
  • Worksheets (“Отчет”).PrintOut - басып чыгаруу баракчасы Photos.
  • MyMacro чалуу – аталган макросту иштетиңиз MyMacro.
  • ThisWorkbook.Save – учурдагы китепти сактоо
  • ThisWorkbooks.SaveAs “D:ArchiveReport” & Алмаштыруу(Азыр, “:”, “-“) & “.xlsx” – китепти папкага сактоо D: Архив аты астында Photos аты менен кошо датасы жана убактысы менен.

Эгерде сиз макростун файл графиги тарабынан таңкы саат 5:00дө ачылганда гана аткарылышын кааласаңыз жана колдонуучу жумушчу китепти жумуш күнү ачкан сайын эмес, анда убакытты текшерүүнү кошуу туура болот, мисалы:

Эгерде Формат(Азыр, "сс:мм") = "05:00" Анда ThisWorkbook.RefreshAll  

Баары болду. Иш китебиңизди макрокоштурулган форматта (xlsm же xlsb) сактоону унутпаңыз, ошондо сиз Excelди коопсуз жаап, компьютериңизди күйүк калтырып, үйгө кете аласыз. Белгилүү бир учурда (компьютер кулпуланган болсо да) Пландаштыруучу Excel программасын ишке киргизет жана андагы көрсөтүлгөн файлды ачат, ал эми биздин макрос программаланган аракеттерди аткарат. Сиздин оор отчетуңуз автоматтык түрдө кайра эсептелип жатканда төшөктө жыргап каласыз - сулуулук! 🙂

  • Макрос деген эмне, аларды кантип колдонуу керек, Excelде Visual Basic кодун кайда киргизүү керек
  • Excel үчүн өз макро плагиндериңизди кантип түзсө болот
  • Жеке макро иш китебин Excelдеги макростарыңыз үчүн китепкана катары кантип колдонсо болот

Таштап Жооп