Menjalankan makro tepat pada masanya

Kes yang sangat biasa dalam amalan: anda perlu menjalankan satu atau lebih makro anda pada masa tertentu atau pada frekuensi tertentu. Sebagai contoh, anda mempunyai laporan besar dan berat yang dikemas kini selama setengah jam dan anda ingin menjalankan kemas kini setengah jam sebelum anda tiba di tempat kerja pada waktu pagi. Atau anda mempunyai makro yang sepatutnya menghantar e-mel secara automatik kepada pekerja pada kekerapan yang ditentukan. Atau, apabila bekerja dengan Jadual Pangsi, anda mahu ia dikemas kini dengan cepat setiap 10 saat, dan seterusnya.

Mari lihat apa yang Excel dan Windows mempunyai keupayaan untuk melaksanakan ini.

Menjalankan makro pada frekuensi tertentu

Cara paling mudah untuk melakukan ini ialah menggunakan kaedah VBA terbina dalam Permohonan.Tepat MasaSatu yang menjalankan makro yang ditentukan pada masa yang ditentukan. Mari kita fahami ini dengan contoh praktikal.

Buka editor Visual Basic dengan butang dengan nama yang sama pada tab pemaju (Pembangun) atau pintasan papan kekunci Alt+F11, masukkan modul baharu melalui menu Sisipan – Modul dan salin kod berikut di sana:

Malapkan TimeToRun 'pembolehubah global di mana masa larian seterusnya disimpan 'ini adalah makro utama Sub MyMacro() Application.Calculate 'kira semula Julat buku("A1").Interior.ColorIndex = Int(Rnd() * 56) 'fill sel A1 dengan warna rawak :) Panggil NextRun 'jalankan makro NextRun untuk menetapkan masa larian seterusnya End Sub' makro ini menetapkan masa untuk larian seterusnya makro utama Sub NextRun() TimeToRun = Now + TimeValue("00: 00:03") 'tambah 3 saat pada Aplikasi masa semasa.OnTime TimeToRun, "MyMacro" 'jadualkan larian seterusnya End Sub 'makro untuk memulakan urutan ulangan Sub Start() Call NextRun End Sub 'makro untuk menghentikan urutan ulangan Sub Finish() Application.OnTime TimeToRun, "MyMacro", , False End Sub  

Mari kita fikirkan apa yang ada di sini.

Pertama, kami memerlukan pembolehubah yang akan menyimpan masa larian makro kami yang seterusnya - saya memanggilnya TimeToRun. Sila ambil perhatian bahawa kandungan pembolehubah ini mesti tersedia untuk semua makro kami yang berikutnya, jadi kami perlu menjadikannya global, iaitu mengisytiharkan pada awal modul sebelum yang pertama Sub.

Seterusnya datang makro utama kami MyMacro, yang akan melaksanakan tugas utama – untuk mengira semula buku menggunakan kaedah Aplikasi.Hitung. Untuk menjadikannya lebih jelas, saya menambah formula =TDATE() pada helaian dalam sel A1, yang memaparkan tarikh dan masa – apabila dikira semula, kandungannya akan dikemas kini di hadapan mata kita (hanya hidupkan paparan detik dalam sel format). Untuk keseronokan tambahan, saya juga menambah pada makro arahan untuk mengisi sel A1 dengan warna yang dipilih secara rawak (kod warna ialah integer dalam julat 0..56, yang dijana oleh fungsi Pus dan membundarkan kepada fungsi integer Int).

Makro SeterusnyaLari menambah nilai sebelumnya TimeToRun 3 saat lagi dan kemudian jadualkan larian seterusnya bagi makro utama MyMacro untuk kali baru ini. Sudah tentu, dalam amalan, anda boleh menggunakan sebarang selang masa lain yang anda perlukan dengan menetapkan hujah fungsi TimeValue dalam format hh:mm:ss.

Dan akhirnya, hanya untuk kemudahan, lebih banyak makro pelancaran jujukan telah ditambahkan. Laman Utama dan penyempurnaannya Selesai. Yang terakhir menggunakan hujah kaedah keempat untuk memecahkan urutan. Pada masa yang ditetapkan sama Palsu.

Jumlah jika anda menjalankan makro Laman Utama, maka keseluruhan karusel ini akan berputar, dan kita akan melihat gambar berikut pada helaian:

Anda boleh menghentikan urutan dengan menjalankan, masing-masing, makro Selesai. Untuk kemudahan, anda boleh menetapkan pintasan papan kekunci kepada kedua-dua makro menggunakan arahan Makro – Pilihan tab pemaju (Pembangun — Makro — Pilihan).

Menjalankan makro mengikut jadual

Sudah tentu, semua yang diterangkan di atas adalah mungkin hanya jika anda menjalankan Microsoft Excel dan fail kami dibuka di dalamnya. Sekarang mari kita lihat kes yang lebih rumit: anda perlu menjalankan Excel mengikut jadual yang diberikan, contohnya, setiap hari pada 5:00, buka laporan yang besar dan kompleks di dalamnya dan kemas kini semua sambungan dan pertanyaan di dalamnya supaya ia akan bersedia pada masa kita tiba di tempat kerja 🙂

Dalam keadaan sedemikian, lebih baik digunakan Penjadual Windows – program yang dibina khas ke dalam mana-mana versi Windows yang boleh melakukan tindakan tertentu mengikut jadual. Sebenarnya, anda sudah menggunakannya tanpa mengetahuinya, kerana PC anda kerap menyemak kemas kini, memuat turun pangkalan data anti-virus baharu, menyegerakkan folder awan, dan lain-lain. Ini semua kerja Penjadual. Jadi tugas kami adalah untuk menambah tugas sedia ada satu lagi yang akan melancarkan Excel dan membuka fail yang ditentukan di dalamnya. Dan kami akan menggantung makro kami pada acara itu Buku kerja_Buka fail ini - dan masalahnya diselesaikan.

Saya ingin memberi amaran kepada anda dengan segera bahawa bekerja dengan Penjadual mungkin memerlukan hak pengguna lanjutan, jadi jika anda tidak dapat mencari arahan dan fungsi yang diterangkan di bawah pada komputer kerja anda di pejabat, hubungi pakar IT anda untuk mendapatkan bantuan.

Melancarkan Penjadual

Jadi mari kita mulakan Penjadual. Untuk melakukan ini, anda boleh sama ada:

  • Klik kanan pada butang Start Dan pilih Pengurusan komputer (Pengurusan komputer)
  • Pilih dalam Panel Kawalan: Pentadbiran – Penjadual Tugas (Panel Kawalan — Alat Pentadbiran — Penjadual Tugas)
  • Pilih daripada menu utama Mula – Aksesori – Alat Sistem – Penjadual Tugas
  • Tekan pintasan papan kekunci Menang+R, masukkan taskschd.msc dan tekan Masukkan

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

Menjalankan makro tepat pada masanya

Buat tugas

Untuk membuat tugasan baharu menggunakan wizard langkah demi langkah yang mudah, klik pada pautan Buat tugasan mudah (Buat Tugasan Asas) di panel kanan.

Pada langkah pertama wizard, masukkan nama dan perihalan tugas yang akan dibuat:

Menjalankan makro tepat pada masanya

Klik pada butang Seterusnya (Seterusnya) dan dalam langkah seterusnya kami memilih pencetus - kekerapan pelancaran atau acara yang akan melancarkan tugas kami (contohnya, menghidupkan komputer):

Menjalankan makro tepat pada masanya

Sekiranya anda memilih harian (Harian), kemudian dalam langkah seterusnya anda perlu memilih masa tertentu, tarikh mula urutan dan langkah (setiap hari ke-2, hari ke-5, dsb.):

Menjalankan makro tepat pada masanya

Langkah seterusnya ialah memilih tindakan - Jalankan program (Mulakan program):

Menjalankan makro tepat pada masanya

Dan akhirnya, perkara yang paling menarik ialah apa yang perlu dibuka:

Menjalankan makro tepat pada masanya

Dalam Program atau skrip (Program/skrip) anda perlu memasukkan laluan ke Microsoft Excel sebagai program, iaitu terus ke Excel executable. Pada komputer yang berbeza dengan versi Windows dan Office yang berbeza, fail ini mungkin berada dalam folder yang berbeza, jadi berikut ialah beberapa cara untuk anda mengetahui lokasinya:

  • Klik kanan pada ikon (pintasan) untuk melancarkan Excel pada desktop atau dalam bar tugas dan pilih arahan Bahan (Properti), dan kemudian dalam tetingkap yang terbuka, salin laluan dari baris Sasaran:

    Menjalankan makro tepat pada masanya                      Menjalankan makro tepat pada masanya

  • Buka mana-mana buku kerja Excel, kemudian buka Pengurus Tugas (Pengurus Tugas) menolak Ctrl+Alt+daripada dan dengan mengklik kanan pada baris Microsoft Excel, pilih arahan Bahan (Properti). Dalam tetingkap yang terbuka, anda boleh menyalin laluan, tidak lupa untuk menambah garis miring ke belakang padanya dan EXCEL.EXE pada penghujungnya:

    Menjalankan makro tepat pada masanya              Menjalankan makro tepat pada masanya

  • Buka Excel, buka editor Visual Basic dengan pintasan papan kekunci Alt+F11, buka panel Serta-merta gabungan daripada Ctrl+G, masukkan arahan ke dalamnya:

    ? Aplikasi.Laluan

    … dan klik pada Masukkan

    Menjalankan makro tepat pada masanya

    Salin laluan yang terhasil, tidak lupa untuk menambah garis miring ke belakang padanya dan EXCEL.EXE pada penghujungnya.

Dalam Tambah hujah (pilihan) (Tambah hujah (pilihan)) anda perlu memasukkan laluan penuh ke buku dengan makro yang ingin kami buka.

Apabila semuanya telah dimasukkan, kemudian klik Seterusnya dan kemudian Selesai (Selesai). Tugas itu harus ditambah ke senarai umum:

Menjalankan makro tepat pada masanya

Adalah mudah untuk menguruskan tugas yang dibuat menggunakan butang di sebelah kanan. Di sini anda boleh menguji tugasan dengan menjalankannya dengan segera (lari)tanpa menunggu masa yang ditetapkan. Anda boleh menyahaktifkan tugas buat sementara waktu (Lumpuhkan)supaya ia berhenti berjalan untuk satu tempoh masa, seperti percutian anda. Nah, anda sentiasa boleh menukar parameter (tarikh, masa, nama fail) melalui butang Bahan (Properti).

Tambahkan makro untuk membuka fail

Kini ia kekal dalam buku kami pelancaran makro yang kami perlukan pada acara buka fail. Untuk melakukan ini, buka buku dan pergi ke editor Visual Basic menggunakan pintasan papan kekunci Alt+F11 atau butang Visual Basic tab pemaju (Pembangun). Dalam tetingkap yang terbuka di sudut kiri atas, anda perlu mencari fail kami pada pokok dan klik dua kali untuk membuka modul Buku ini (Buku Kerja ini).

Jika anda tidak melihat tetingkap ini dalam editor Visual Basic, maka anda boleh membukanya melalui menu Lihat — Penjelajah Projek.

Dalam tetingkap modul yang terbuka, tambahkan pengendali acara buka buku dengan memilihnya daripada senarai lungsur di bahagian atas Buku kerja и Buka, masing-masing:

Menjalankan makro tepat pada masanya

Templat prosedur sepatutnya muncul pada skrin. Buku kerja_Buka, di mana antara garisan Sub и Akhir Sub dan anda perlu memasukkan arahan VBA yang sepatutnya dilaksanakan secara automatik apabila buku kerja Excel ini dibuka, apabila Penjadual membukanya mengikut jadual. Berikut ialah beberapa pilihan berguna untuk overclocking:

  • This Workbook.RefreshAll – Menyegarkan semula semua pertanyaan data luaran, pertanyaan Power Query dan Jadual Pangsi. Pilihan yang paling serba boleh. Cuma jangan lupa untuk membenarkan sambungan ke data luaran secara lalai dan kemas kini pautan melalui Fail – Pilihan – Pusat Amanah – Pilihan Pusat Amanah – Kandungan Luaran, jika tidak, apabila anda membuka buku, amaran standard akan muncul dan Excel, tanpa mengemas kini apa-apa, akan menunggu berkat anda dalam bentuk mengklik pada butang Dayakan kandungan (Dayakan kandungan):

    Menjalankan makro tepat pada masanya

  • ActiveWorkbook.Connections("Connection_Name").Refresh — mengemas kini data pada sambungan Connection_Name.
  • Helaian("Helaian5“).Jadual Pangsi(“Jadual Pangsi1«).PivotCache.Refresh – mengemas kini jadual pangsi tunggal bernama Jadual Pangsi1 pada helaian Sheet5.
  • Aplikasi.Hitung – pengiraan semula semua buku kerja Excel yang terbuka.
  • Aplikasi.CalculateFullRebuild – pengiraan semula paksa semua formula dan membina semula semua kebergantungan antara sel dalam semua buku kerja terbuka (bersamaan dengan memasukkan semula semua formula).
  • Lembaran kerja("Laporan").Cetak – lembaran cetakan pics.
  • Panggil MyMacro – jalankan makro bernama MyMacro.
  • Buku Kerja ini.Simpan – simpan buku semasa
  • ThisWorkbooks.SaveAs “D:ArchiveReport” & Ganti(Sekarang, “:”, “-“) & “.xlsx” – simpan buku ke dalam folder D:Arkib di bawah nama pics dengan tarikh dan masa dilampirkan pada nama.

Jika anda mahu makro dilaksanakan hanya apabila fail dibuka oleh Penjadual pada 5:00 pagi, dan bukan setiap kali pengguna membuka buku kerja pada hari bekerja, maka wajar untuk menambah semakan masa, sebagai contoh:

Jika Format(Sekarang, "hh:mm") = "05:00" Kemudian ThisWorkbook.RefreshAll  

Itu sahaja. Jangan lupa simpan buku kerja anda dalam format yang didayakan makro (xlsm atau xlsb) dan anda boleh menutup Excel dengan selamat dan pulang ke rumah, meninggalkan komputer anda dihidupkan. Pada masa tertentu (walaupun PC dikunci), Penjadual akan melancarkan Excel dan membuka fail yang ditentukan di dalamnya, dan makro kami akan melaksanakan tindakan yang diprogramkan. Dan anda akan bermewah di atas katil sementara laporan berat anda dikira semula secara automatik - kecantikan! 🙂

  • Apakah makro, cara menggunakannya, tempat untuk memasukkan kod Visual Basic dalam Excel
  • Cara membuat tambahan makro anda sendiri untuk Excel
  • Cara menggunakan Buku Kerja Makro Peribadi sebagai perpustakaan untuk makro anda dalam Excel

Sila tinggalkan balasan anda