Di wextê xwe de makro dimeşîne

Di pratîkê de bûyerek pir gelemperî: hûn hewce ne ku yek an çend makroyên xwe di demek diyarkirî de an li ser frekansek diyarkirî bimeşînin. Mînakî, raporek we ya mezin û giran heye ku nîv saetê nûve dike û hûn dixwazin nûvekirinê nîv saetê berî ku hûn serê sibê bigihîjin kar bikin. An jî makroyek we heye ku divê bixweber e-name ji karmendan re bi frekansek diyarkirî bişîne. An jî, dema ku bi PivotTable re dixebitin, hûn dixwazin ku ew her 10 saniyan carekê nûve bike, û hwd.

Ka em binihêrin ka Excel û Windows çi şiyana pêkanîna vê yekê hene.

Di frekansa diyarkirî de makroyek dimeşîne

Rêya herî hêsan a kirina vê yekê karanîna rêbaza VBA-ya çêkirî ye Serlêdan.OnTimeAn ku makroya diyarkirî di dema diyarkirî de dimeşîne. Ka em vê bi mînakek pratîkî fam bikin.

Edîtorê Visual Basic bi bişkoja bi heman navî ya li ser tabê vekin pêşvebirinê (pêşdebir) an jî kurteya klavyeyê alt+F11, modulek nû têxe nav menuyê Têxe - Modul û koda jêrîn li wir kopî bikin:

Dim TimeToRun 'guherbara gerdûnî ya ku dema xebitandina din lê tê hilanîn 'ev makroya sereke ye Sub MyMacro() Serlêdan. Hesab bike 'Rangeya pirtûkê ("A1") ji nû ve hesab bike. Navxweyî.ColorIndex = Int(Rnd() * 56) 'dagirtin hucreya A1 ya bi rengek bêserûber :) Gazî NextRun bike 'makroya NextRun bimeşîne da ku dema xebitandina din destnîşan bike End Sub 'ev makro dema gera paşîn a makroya sereke destnîşan dike Sub NextRun() TimeToRun = Niha + TimeValue("00: 00:03") '3 saniyeyan li dema niha zêde bike Serlêdan.OnTime TimeToRun, "MyMacro" 'rêvebera paşîn bi dawî bike Sub 'makroyê ku rêza dûbarebûnê bide destpêkirin Sub Start() Banga NextRun End Sub 'makro bike da ku rêza dûbare rawestîne. Sub Finish() Application.OnTime TimeToRun, "MyMacro", , Fase End Sub  

Ka em fêr bibin ka li vir çi ye.

Pêşîn, em hewceyê guhêrbarek e ku dê dema gera paşîn a makroya me hilîne - min jê re got TimeToRun. Ji kerema xwe bala xwe bidin ku naveroka vê guhêrbar divê ji hemî makroyên me yên paşîn re peyda bibe, ji ber vê yekê divê em wê bikin cîhane, ango di destpêka modulê de berî ya yekem diyar bike bînrawe.

Piştre makroya meya sereke tê MyMacro, ku dê karê sereke pêk bîne - ji bo ku pirtûka bi karanîna rêbazê veguhestin Serlêdan.Hesabkirin. Ji bo ku ew zelaltir bibe, min formula =TDATE() li pelika di hucreya A1 de zêde kir, ku tarîx û demjimêrê nîşan dide - dema ku ji nû ve were hesibandin, naveroka wê dê rast li ber çavên me were nûve kirin (tenê nîşana çirkeyan di hucreyê de vekin. çap). Ji bo kêfa zêde, min fermana dagirtina hucreya A1 bi rengek bêserûber hilbijartî jî li makroyê zêde kir (koda reng di rêza 0..56 de jimareyek tevde ye, ku ji hêla fonksiyonê ve hatî çêkirin Rnd û dor li fonksiyoneke jimare digire Int).

makro NextRun nirxa berê zêde dike TimeToRun 3 saniyeyên din û dûv re gera paşîn a makroya sereke destnîşan dike MyMacro ji bo vê dema nû. Bê guman, di pratîkê de, hûn dikarin bi danîna argumanên fonksiyonê navberên dem ên din ên ku hûn hewce ne bikar bînin TimeValue di formata hh:mm:ss de.

Û di dawiyê de, tenê ji bo rehetiyê, makroyên destpêkirina rêzikên bêtir hatine zêdekirin. Xane û temamkirina wê Qedandin. Ya paşîn argumana rêbaza çaremîn bikar tîne da ku rêzê bişkîne. Serwext wekhev şaş.

Bi tevahî heke hûn makroyê dimeşînin Xane, wê hingê dê ev karûzel tev bizivire, û em ê wêneya jêrîn li ser pelê bibînin:

Hûn dikarin rêzê bi xebitandina makroyê bi rêzê rawestînin Qedandin. Ji bo rehetiyê, hûn dikarin bi karanîna fermanê kurtebirên klavyeyê ji her du makroyan re destnîşan bikin Macros - Vebijêrk tab pêşvebirinê (Pêşvebir - Macro - Vebijêrk).

Li ser nexşeyek makro dimeşîne

Bê guman, her tiştê ku li jor hatî destnîşan kirin tenê heke we Microsoft Excel-ê dimeşîne û pelê me tê de vekirî ye mimkun e. Naha em li dozek tevlihevtir binêrin: hûn hewce ne ku Excel li gorî bernameyek diyarkirî bimeşînin, mînakî, her roj di 5:00 de, raporek mezin û tevlihev tê de vekin û hemî girêdan û lêpirsînên tê de nûve bikin da ku ew ê dema ku em werin ser kar amade bin 🙂

Di rewşek weha de, çêtir e ku meriv bikar bîne Windows Scheduler - Bernameyek ku bi taybetî di her guhertoyek Windows-ê de hatî çêkirin ku dikare çalakiyên diyarkirî li ser nexşeyek pêk bîne. Bi rastî, hûn jixwe bêyî ku zanibin wê bikar tînin, ji ber ku PC-ya we bi rêkûpêk nûvekirinan kontrol dike, databasên nû yên antî-vîrûsê dadixe, peldankên ewr hevdem dike, hwd. Ew hemî karê Scheduler e. Ji ber vê yekê peywira me ev e ku em yekî din li karên heyî zêde bikin ku dê Excel dest pê bike û pelê diyarkirî tê de veke. Û em ê makroya xwe li ser bûyerê daliqînin Workbook_Open ev pel - û pirsgirêk çareser dibe.

Ez dixwazim tavilê hişyarî bidim we ku xebata bi Scheduler re dibe ku mafên bikarhênerê yên pêşkeftî hewce bike, ji ber vê yekê heke hûn nikaribin ferman û fonksiyonên ku li jêr li ser komputera xweya xebatê li nivîsgehê hatine destnîşan kirin bibînin, ji bo alîkariyê bi pisporên IT-ya xwe re têkilî daynin.

Destpêkirina Scheduler

Ji ber vê yekê em dest bi Scheduler bikin. Ji bo vê yekê, hûn dikarin an jî:

  • Bişkojka rastê bikirtînin Destpêkirin û hilbijêrin Management Management (Rêveberiya komputerê)
  • Di Panela Kontrolê de hilbijêrin: Rêvebir - Task Scheduler (Panela Kontrolê - Amûrên Rêvebir - Bernameya Peywiran)
  • Ji pêşeka sereke hilbijêrin Destpêk - Pêvek - Amûrên Pergalê - Bernameya Peywiran
  • Kurteya klavyeyê ya çapkirinê Serkeftin+R, bikevin Taskchd.msc Û çapemeniyê Derbasbûn

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

Di wextê xwe de makro dimeşîne

Karekî biafirînin

Ji bo afirandina peywirek nû bi karanîna sêrbazek hêsan-gav-gav, li ser zencîreyê bikirtînin Karûbarek hêsan çêbikin (Karê bingehîn biafirîne) di panela rastê de.

Di gava yekem a sêrbazê de, nav û danasîna peywira ku tê afirandin têkevin:

Di wextê xwe de makro dimeşîne

Bişkojka bikirtînin Piştî (Piştî) û di gava paşîn de em tetikek hilbijêrin - frekansa destpêkirinê an bûyerek ku dê peywira me bide destpêkirin (mînakî, vekirina komputerê):

Di wextê xwe de makro dimeşîne

Heke we hilbijart Rojane (Rojane), wê hingê di gava paşîn de hûn ê hewce bikin ku demek taybetî, tarîxa destpêka rêzê û gavê hilbijêrin (her roja 2yemîn, roja 5emîn, hwd.):

Di wextê xwe de makro dimeşîne

Pêngava paşîn hilbijartina çalakiyek e - Bernameyê bimeşînin (Bernameyek dest pê bike):

Di wextê xwe de makro dimeşîne

Û di dawiyê de, ya herî balkêş ev e ku bi rastî hewce ye ku were vekirin:

Di wextê xwe de makro dimeşîne

Di Bername an nivîsar (Bername/skrîpt) divê hûn wekî bernameyeke riya Microsoft Excel-ê têkevin, ango rasterast berbi Excel-ê îcrakar. Li ser komputerên cihêreng ên bi guhertoyên cûda yên Windows û Office-ê, dibe ku ev pel di peldankên cûda de be, ji ber vê yekê li vir çend away hene ku hûn cîhê wê bibînin:

  • Rast-klîk li ser îkonê (kurtebir) bikirtînin da ku Excel li ser sermaseyê an di barika peywirê de bidin destpêkirin û fermanê hilbijêrin materyalên (Taybetmendî), û paşê di pencereya ku vedibe, rê ji rêzê kopî bikin Armanc:

    Di wextê xwe de makro dimeşîne                      Di wextê xwe de makro dimeşîne

  • Pirtûka xebatê ya Excel vekin, paşê vekin Rêveberê Task (Rêveberê Peywiran) teqandin Ctrl+alt+Ji û bi tikandina rastê li ser rêzê Microsoft Excel, fermanek hilbijêrin materyalên (Taybetmendî). Di pencereya ku vedibe, hûn dikarin rêyê kopî bikin, ji bîr nekin ku paşvekêşek lê zêde bikin û di dawiyê de EXCEL.EXE:

    Di wextê xwe de makro dimeşîne              Di wextê xwe de makro dimeşîne

  • Excel vekin, edîtorê Visual Basic bi kurteya klavyeyê vekin alt+F11, panelê vekin derhal têkeliyek ji Ctrl+G, fermanê têxe nav wê:

    ? Serlêdan.Rê

    … û pê bikirtînin Derbasbûn

    Di wextê xwe de makro dimeşîne

    Rêya encamê kopî bikin, ji bîr nekin ku paşvekêşek lê zêde bikin û di dawiyê de EXCEL.EXE.

Di Argument zêde bikin (vebijarkî) (Argumanan zêde bikin (vebijarkî)) hûn hewce ne ku riya tevahî pirtûkê bi makroya ku em dixwazin vekin têxin.

Dema ku her tişt têkevin, paşê bikirtînin Piştî and then Qedandin (Qedandin). Pêdivî ye ku peywir li navnîşa gelemperî were zêdekirin:

Di wextê xwe de makro dimeşîne

Bi karanîna bişkokên li milê rastê birêvebirina peywira hatî afirandin hêsan e. Li vir hûn dikarin peywirê bi lez û bez biceribînin (rev)bêyî ku li benda dema diyarkirî bimîne. Hûn dikarin karekî demkî neçalak bikin (Neçalak bike)da ku ew ji bo demekê, wek betlaneya we, bisekine. Welê, hûn her gav dikarin bi bişkojkê parametreyan (dîrok, dem, navê pelê) biguhezînin materyalên (Taybetmendî).

Ji bo vekirina pelê makroyek zêde bikin

Naha ew dimîne ku em di pirtûka xwe de destpêkirina makroya ku em li ser bûyera vekirî ya pelê hewce ne daliqînin. Ji bo vê yekê, pirtûkê vekin û bi kurteya klavyeyê biçin edîtorê Visual Basic alt+F11 an bişkokên Visual Basic tab pêşvebirinê (pêşdebir). Di pencereya ku li quncika çepê ya jorîn vedibe, hûn hewce ne ku pelê me li ser darê bibînin û du caran bikirtînin da ku modulê vekin. Ev pirtûka (Ev Pirtûka Xebatê).

Ger hûn vê pencereyê di edîtorê Visual Basic de nabînin, wê hingê hûn dikarin wê bi menuyê vekin Dîtin - Projeya Explorer.

Di pencereya modulê ya ku vedibe de, bi bijartina wê ji navnîşên dakêşan ên li jor ve rêvekerek bûyerek vekirî ya pirtûkê lê zêde bike. Pirtûka xebatê и Vekirî, bi rêzê:

Di wextê xwe de makro dimeşîne

Divê şablonek prosedûrê li ser ekranê xuya bibe. Workbook_Open, ku di navbera xetên Private Sub и End bînrawe û hûn hewce ne ku wan emrên VBA-yê yên ku divê bixweber bêne darve kirin gava ku ev pirtûka xebatê ya Excel vebe, gava ku Bername li gorî nexşeyê vedike, têxin nav xwe. Li vir çend vebijarkên bikêr hene ji bo overclocking:

  • ThisWorkbook.RefreshAll - Hemî lêpirsînên daneya derveyî, pirsên Hêza Query, û PivotTables nûve dike. Vebijarka herî pirreng. Tenê ji bîr nekin ku hûn rê bidin girêdanên bi daneya derveyî re ji hêla xwerû ve û bi riya girêdanan nûve bikin Pelê - Vebijêrk - Navenda Baweriyê - Vebijêrkên Navenda Baweriyê - Naveroka Derveyî, wekî din, gava ku hûn pirtûkê vekin, dê hişyariyek standard xuya bibe û Excel, bêyî ku tiştek nûve bike, dê li benda bereketa we di forma tikandina bişkojkê de bimîne. Naveroka çalak bike (Naverok çalak bike):

    Di wextê xwe de makro dimeşîne

  • ActiveWorkbook.Connections("Connection_Name"). Nûve bike - nûvekirina daneyan li ser girêdana Connection_Name.
  • Sheets ("Şeet5").PivotTables("PivotTable1«).PivotCache.Nûvekirin - nûvekirina tabloyek pivot a bi navê PivotTable1 li ser pelê Sheet5.
  • Serlêdan.Hesabkirin - ji nû ve hesabkirina hemî pirtûkên xebatê yên vekirî yên Excel.
  • Application.CalculateFullRebuild - Hesabkirina zorê ya hemî formulan û ji nû ve avakirina hemî girêdanên di navbera hucreyan de di hemî pirtûkên xebatê yên vekirî de (wekhev ketina hemî formulan ji nû ve).
  • Karûbar ("Raport").Çapkirin - pelê çapkirinê Photos.
  • Gazî MyMacro bikin - makroyek bi navê bimeşîne MyMacro.
  • ThisWorkbook.Save - pirtûka heyî xilas bike
  • ThisWorkbooks.SaveAs "D:ArchiveReport" & Replace(Niha, ":", "-") & ".xlsx" - pirtûkê li peldankekê hilînin D: Arşîv di bin navê Photos bi tarîx û saeta ku li ser navê hatiye zêdekirin.

Ger hûn dixwazin ku makro tenê dema ku pel ji hêla Scheduler ve di demjimêr 5:00 sibehê de tê vekirin, were darve kirin, û ne her carê ku bikarhêner di roja xebatê de pirtûka xebatê vedike, wê hingê maqûl e ku meriv kontrolek dem lê zêde bike, mînakî:

Ger Format(Niha, "hh:mm") = "05:00" Paşê ThisWorkbook.RefreshAll  

Navê pêger. Ji bîr nekin ku pirtûka xweya xebatê bi formatek makro-çalakkirî (xlsm an xlsb) hilînin û hûn dikarin bi ewlehî Excel-ê bigirin û biçin malê, û komputera xwe vekirî bihêlin. Di demek diyarkirî de (tevî ku PC girtî be), Scheduler dê Excel dest pê bike û pelê diyarkirî tê de veke, û makroya me dê çalakiyên bernamekirî pêk bîne. Û hûn ê di nav nivînan de xwe xweş bikin dema ku raporta weya giran bixweber ji nû ve were hesibandin - bedewî! 🙂

  • Makro çi ne, meriv wan çawa bikar tîne, koda Visual Basic li ku derê têxe Excel
  • Meriv çawa pêveka makroya xwe ya ji bo Excel biafirîne
  • Meriv çawa Pirtûka Xebatê ya Makroya Kesane wekî pirtûkxaneyek ji bo makroyên xwe yên li Excel bikar tîne

Leave a Reply