Ngajalankeun makro dina waktosna

Kasus anu umum pisan dina prakna: anjeun kedah ngajalankeun hiji atanapi langkung makro anjeun dina waktos anu ditangtukeun atanapi dina frekuensi anu tangtu. Salaku conto, anjeun gaduh laporan anu ageung sareng beurat anu ngamutahirkeun satengah jam sareng anjeun hoyong ngajalankeun apdet satengah jam sateuacan anjeun sumping di tempat damel isuk-isuk. Atanapi anjeun gaduh makro anu kedah otomatis ngirim email ka karyawan dina frékuénsi anu ditangtukeun. Atanapi, nalika damel sareng PivotTable, anjeun badé ngapdet dina laleur unggal 10 detik, sareng saterasna.

Hayu urang tingali naon Excel sareng Windows gaduh kamampuan pikeun nerapkeun ieu.

Ngajalankeun makro dina frékuénsi anu ditangtukeun

Cara panggampangna pikeun ngalakukeun ieu nyaéta nganggo metodeu VBA anu diwangun Aplikasi.OnTimeAnu ngajalankeun makro anu ditangtukeun dina waktos anu ditangtukeun. Hayu urang ngartos ieu ku conto praktis.

Buka pangropéa Visual Basic kalayan tombol nami anu sami dina tab pamekar (Pamekar) atawa potong kompas keyboard Alt+F11, selapkeun modul anyar ngaliwatan menu nu Selapkeun - Modul sareng salin kodeu ieu di dinya:

Taram TimeToRun 'variabel global dimana waktos ngajalankeun salajengna disimpen 'ieu makro utama Sub MyMacro () Application.Calculate 'recalculate buku Rentang ("A1").Interior.ColorIndex = Int (Rnd () * 56) 'eusian sél A1 kalayan warna acak :) Nelepon NextRun 'jalankeun makro NextRun pikeun ngeset waktos ngajalankeun salajengna End Sub 'makro ieu nyetél waktos kanggo ngajalankeun salajengna makro utama Sub NextRun() TimeToRun = Now + TimeValue("00: 00:03") 'tambahkeun 3 detik kana waktos ayeuna Application.OnTime TimeToRun, "MyMacro" 'jadwalkeun ngajalankeun salajengna End Sub 'makro pikeun ngamimitian urutan ulangan Sub Start() Nelepon NextRun End Sub' makro pikeun ngeureunkeun urutan ulangan. Sub Finish () Application.OnTime TimeToRun, "MyMacro", , False End Sub  

Hayu urang terang naon di dieu.

Kahiji, urang kudu variabel anu bakal nyimpen waktu ngajalankeun saterusna macro urang - I disebut TimeToRun. Punten dicatet yén eusi variabel ieu kedah sayogi pikeun sadaya makro anu salajengna, janten urang kedah ngajantenkeun éta sadunya, nyaéta nyatakeun di awal modul sateuacan anu munggaran sub.

Salajengna asalna makro utama urang MyMacro, anu bakal ngalaksanakeun tugas utama - ngitung deui buku nganggo metodeu Aplikasi.Itung. Pikeun langkung jelas, kuring nambihan rumus = TDATE () kana lambaran dina sél A1, anu nunjukkeun tanggal sareng waktos - nalika diitung deui, eusina bakal diropéa langsung sateuacan panon urang (ngan hurungkeun tampilan detik dina sél). formatna). Pikeun tambahan senang, Kuring ogé ditambahkeun kana makro paréntah pikeun ngeusian sél A1 kalawan warna dipilih acak (kode warna mangrupa integer dina rentang 0..56, nu dihasilkeun ku fungsi. Rnd sarta rounds nepi ka fungsi integer Int).

macro TerasJalankeun nambahkeun kana nilai saméméhna TimeToRun 3 detik deui lajeng ngajadwalkeun ngajalankeun salajengna tina makro utama MyMacro pikeun waktos anyar ieu. Tangtosna, dina prakna, anjeun tiasa nganggo interval waktos sanés anu anjeun peryogikeun ku netepkeun argumen fungsi TimeValue dina format hh:mm:ss.

Sareng pamustunganana, ngan pikeun genah, langkung seueur makro peluncuran séri parantos parantos ditambah. imah jeung réngséna ngabereskeun. Anu terakhir ngagunakeun argumen metode kaopat pikeun ngarobih sekuen. Dina waktosna sarua palsu.

Total lamun ngajalankeun makro imah, teras sakabeh carousel ieu bakal muter, sarta kami bakal ningali gambar di handap dina lambaranana:

Anjeun tiasa ngeureunkeun sekuen ku ngajalankeun, masing-masing, makro ngabereskeun. Pikeun genah, anjeun tiasa napelkeun potong kompas keyboard ka duanana makro nganggo paréntah Macro - Pilihan tab pamekar (Pamekar - Macros - Pilihan).

Ngajalankeun makro dina jadwal

Tangtosna, sadayana anu dijelaskeun di luhur ngan ukur tiasa upami anjeun ngajalankeun Microsoft Excel sareng file kami dibuka di jerona. Ayeuna hayu urang tingali kasus anu langkung pajeulit: anjeun kedah ngajalankeun Excel dumasar kana jadwal anu dipasihkeun, contona, unggal dinten tabuh 5:00, buka laporan anu ageung sareng rumit di jerona sareng ngapdet sadaya sambungan sareng patarosan di jerona supados éta bakal. janten siap ku waktu urang anjog di gawe 🙂

Dina kaayaan kitu, eta leuwih hade migunakeun Windows Scheduler – program husus diwangun kana sagala vérsi Windows nu bisa ngalakukeun tindakan husus dina jadwal. Nyatana, anjeun parantos nganggo éta tanpa terang, sabab PC anjeun rutin mariksa apdet, ngaunduh database anti-virus énggal, nyingkronkeun polder awan, jsb. Éta sadayana padamelan Penjadwal. Janten tugas urang nyaéta nambihan kana tugas anu tos aya anu sanés anu bakal ngaluncurkeun Excel sareng muka file anu ditangtukeun di jerona. Sarta kami bakal ngagantung makro urang dina acara Workbook_Buka file ieu - sareng masalahna direngsekeun.

Abdi hoyong ngingetkeun anjeun langsung yén gawé bareng Scheduler bisa merlukeun hak pamaké canggih, jadi lamun teu bisa manggihan paréntah sarta fungsi dijelaskeun di handap dina komputer karya anjeun di kantor, ngahubungan spesialis IT anjeun pikeun pitulung.

Ngajalankeun Scheduler

Janten hayu urang ngamimitian Penjadwal. Jang ngalampahkeun ieu, anjeun tiasa:

  • Klik katuhu dina tombol ngamimitian tur pilih Manajemén komputer (Manajemén Komputer)
  • Pilih dina Control Panel: Administrasi - Penjadwal Tugas (Panel Kontrol - Alat Administratif - Penjadwal Tugas)
  • Pilih tina ménu utama Mimitian - Asesoris - Alat Sistem - Penjadwal Tugas
  • Pencét potong kompas keyboard meunang+R, lebet taskchd.msc terus pencét asup

Jandéla di handap ieu kedah némbongan dina layar (Kuring gaduh versi Inggris, tapi anjeun ogé tiasa gaduh versi):

Ngajalankeun makro dina waktosna

Ngadamel tugas

Pikeun nyieun tugas anyar ngagunakeun wizard step-by-step basajan, klik dina link Jieun tugas basajan (Jieun Tugas Dasar) dina panel katuhu.

Dina lengkah kahiji wizard, lebetkeun nami sareng pedaran tugas anu bakal didamel:

Ngajalankeun makro dina waktosna

Pencét kana tombol Teras (Teras) sareng dina lengkah salajengna urang milih pemicu - frékuénsi peluncuran atanapi acara anu bakal ngaluncurkeun tugas urang (contona, ngaktipkeun komputer):

Ngajalankeun makro dina waktosna

Upami anjeun milih unggal poe (Sapopoe), teras dina lengkah salajengna anjeun kedah milih waktos khusus, tanggal ngamimitian urutan sareng léngkah (unggal dinten ka-2, dinten ka-5, jsb.):

Ngajalankeun makro dina waktosna

Léngkah salajengna nyaéta milih tindakan - Ngajalankeun program (Ngamimitian program):

Ngajalankeun makro dina waktosna

Tungtungna, hal anu paling pikaresepeun nyaéta naon anu kedah dibuka:

Ngajalankeun makro dina waktosna

dina Program atawa naskah (Program/skrip) Anjeun kudu ngasupkeun jalur ka Microsoft Excel salaku program, nyaéta langsung ka Excel executable. Dina komputer anu béda sareng versi Windows sareng Office anu béda, file ieu tiasa aya dina polder anu béda, janten ieu sababaraha cara pikeun anjeun terang lokasina:

  • Klik katuhu dina ikon (potong kompas) pikeun ngajalankeun Excel dina desktop atawa dina taskbar tur pilih paréntah bahan (Pasipatan), lajeng dina jandela nu muka, nyalin jalur tina garis tujuan:

    Ngajalankeun makro dina waktosna                      Ngajalankeun makro dina waktosna

  • Buka buku kerja Excel naon waé, teras buka tugas Manajer (Manajer Tugas) ngadorong Ctrl+Alt+ti jeung ku ngaklik katuhu dina garis Microsoft Excel, pilih paréntah bahan (Pasipatan). Dina jandéla anu muka, anjeun tiasa nyalin jalur, teu hilap nambihan backslash ka dinya sareng EXCEL.EXE dina tungtungna:

    Ngajalankeun makro dina waktosna              Ngajalankeun makro dina waktosna

  • Buka Excel, buka pangropéa Visual Basic nganggo potong kompas keyboard Alt+F11, panel kabuka geuwat gabungan tina Ctrl+G, lebetkeun paréntah ka dinya:

    ? Aplikasi.Jalan

    … teras klik dina asup

    Ngajalankeun makro dina waktosna

    Salin jalur anu dihasilkeun, teu hilap nambihan backslash ka dinya sareng EXCEL.EXE dina tungtungna.

dina Tambihkeun argumen (opsional) (Tambahkeun argumen (opsional)) anjeun kudu nyelapkeun jalur pinuh ka buku jeung makro nu urang hoyong buka.

Lamun sagalana geus diasupkeun, teras klik Teras teras salajengna ngabereskeun (Rengse). Tugas kudu ditambahkeun kana daptar umum:

Ngajalankeun makro dina waktosna

Gampang pikeun ngatur tugas anu didamel nganggo tombol di sisi katuhu. Di dieu anjeun bisa nguji tugas ku ngajalankeun eta langsung (lumpat)tanpa nungguan waktu nu geus ditangtukeun. Anjeun tiasa samentawis nganonaktipkeun tugas (Pareuman)ku kituna eta eureun ngajalankeun pikeun periode waktu, kayaning pakansi Anjeun. Nya, anjeun salawasna tiasa ngarobih parameter (tanggal, waktos, nami file) ngalangkungan tombol bahan (Pasipatan).

Tambahkeun makro pikeun muka file

Ayeuna tetep ngagantung dina buku urang peluncuran makro anu urang peryogikeun dina acara kabuka file. Jang ngalampahkeun ieu, buka buku sareng angkat ka pangropéa Visual Basic nganggo potong kompas keyboard Alt+F11 atawa tombol visual Basic tab pamekar (Pamekar). Dina jandela anu muka di belah kénca juru luhur, anjeun kedah milarian file kami dina tangkal sareng dua kali klik pikeun muka modul buku (Buku Karya ieu).

Upami anjeun henteu ningali jandela ieu dina pangropéa Visual Basic, anjeun tiasa mukakeunana ngalangkungan ménu Témbongkeun - Project Explorer.

Dina jandela modul nu muka, tambahkeun panangan acara buka buku ku milih tina daptar turun-handap di luhur. Buku Panduan и kabukamasing-masing:

Ngajalankeun makro dina waktosna

Témplat prosedur kedah muncul dina layar. Workbook_Buka, dimana antara garis Swasta Sub и tungtung Sub sareng anjeun kedah nyelapkeun paréntah VBA anu kedah dieksekusi sacara otomatis nalika buku kerja Excel ieu dibuka, nalika Penjadwal muka éta dumasar kana jadwal. Ieu sababaraha pilihan mangpaat pikeun overclocking:

  • ThisWorkbook.RefreshAll - Nyegerkeun sadaya patarosan data éksternal, pamundut Power Query, sareng PivotTables. Pilihan anu paling serbaguna. Ngan tong hilap ngawenangkeun sambungan kana data éksternal sacara standar sareng ngapdet tautan via File - Pilihan - Pusat Amanah - Pilihan Pusat Amanah - Eusi Eksternal, Upami teu kitu, nalika anjeun muka buku, peringatan standar bakal muncul sareng Excel, tanpa ngamutahirkeun nanaon, bakal ngantosan berkah anjeun dina bentuk ngaklik tombol. Aktipkeun eusi (Aktipkeun eusi):

    Ngajalankeun makro dina waktosna

  • ActiveWorkbook.Connections("Connection_Name").Refresh — ngamutahirkeun data dina sambungan Connection_Name.
  • Lembar ("Lembar 5").PivotTables("PivotTable1«).PivotCache.Refresh - ngamutahirkeun tabel pangsi tunggal ngaranna Tabél Pangsi1 dina lambaran Lambaran5.
  • Aplikasi.Itung - itungan ulang sadaya buku kerja Excel anu kabuka.
  • Application.CalculateFullRebuild - itungan ulang paksa sadaya rumus sareng ngawangun deui sadaya katergantungan antara sél dina sadaya buku kerja anu kabuka (sarua sareng ngalebetkeun deui sadaya rumus).
  • Lembar Kerja (“Laporan”).PrintOut - lembar cetak Photos.
  • Telepon MyMacro – ngajalankeun makro ngaranna MyMacro.
  • Ieu Workbook.Simpen – Simpen buku ayeuna
  • ThisWorkbooks.SaveAs "D: ArchiveReport" & Ganti (Ayeuna, ":", "-") & ".xlsx" – Simpen buku kana polder D: Arsip handapeun nami Photos kalawan tanggal jeung waktu appended kana ngaran.

Upami anjeun hoyong makro dieksekusi ngan ukur nalika file dibuka ku Penjadwal jam 5:00 am, sareng henteu unggal waktos pangguna muka buku kerja salami dinten damel, maka masuk akal pikeun nambihan cek waktos, contona:

Lamun Format(Ayeuna, "hh:mm") = "05:00" Lajeng ThisWorkbook.RefreshAll  

Éta hungkul. Tong hilap simpen buku kerja anjeun dina format anu diaktipkeun makro (xlsm atanapi xlsb) sareng anjeun tiasa nutup Excel kalayan aman sareng mulih, ngantepkeun komputer anjeun hurung. Dina waktos anu ditangtukeun (sanaos PC dikonci), Penjadwal bakal ngaluncurkeun Excel sareng muka file anu ditangtukeun di jerona, sareng makro urang bakal ngalaksanakeun tindakan anu diprogram. Sarta anjeun bakal luxuriate dina ranjang bari laporan beurat anjeun otomatis recalculated - kageulisan! 🙂

  • Naon macros, kumaha ngagunakeunana, dimana nyelapkeun kode Visual Basic dina Excel
  • Kumaha cara ngadamel tambihan makro anjeun nyalira pikeun Excel
  • Kumaha cara ngagunakeun Buku Kerja Makro Pribadi salaku perpustakaan pikeun makro anjeun dina Excel

Leave a Reply