Pemboleh ubah Awam VBA - Cara Menyatakan Pemboleh ubah Awam dalam VBA (Contoh)

Pemboleh ubah Awam dalam VBA

"Pemboleh ubah Awam" dalam VBA, seperti namanya, adalah pemboleh ubah yang dinyatakan untuk digunakan secara terbuka untuk semua makro yang kita tulis dalam modul yang sama dan juga dalam modul yang berbeda. Jadi, apabila pemboleh ubah diisytiharkan pada awal makro disebut "Pembolehubah Awam" atau "Pembolehubah Global."

Bagaimana Menyatakan Pemboleh ubah Awam dalam VBA?

Biasanya, kita memulakan subprosedur VBA, dan di dalam subproses, kita menyatakan pemboleh ubahnya. Ini adalah amalan biasa yang kita semua lakukan sehingga artikel ini.

Setiap kali kita menulis subprosedur baru, kita menyatakan pemboleh ubah baru dengan jenis data yang diberikan kepadanya. Tetapi hari ini, kita akan mengucapkan selamat tinggal kepada pemboleh ubah berulang di seluruh subproses.

Mari kita ingat gaya lama. Berikut adalah kod yang telah saya tulis dengan satu pemboleh ubah.

Dalam sub prosedur "Public_Variable," saya telah menyatakan pemboleh ubah ini. Sekarang saya tidak dapat menggunakan modul lain.

Sekarang dalam subprosedur "Public_Variable1", kita tidak dapat menggunakan variabel "Var1," yang dinyatakan dalam subprosedur pertama "Public_Variable." Ini adalah batasan menyatakan pemboleh ubah di dalam subproses.

# 1 - Pemboleh ubah Tahap Modul

Seperti yang kita semua ketahui, kita menulis makro dalam modul. Kita boleh memasukkan sebilangan modul. Kami dapat menyatakan dua jenis "Pemboleh ubah Awam" dalam VBA, satu adalah menggunakan pemboleh ubah untuk semua subprosedur dalam modul yang sama, dan yang kedua adalah menggunakan pemboleh ubah untuk semua subprosedur di semua modul.

Pertama, kita akan melihat menyatakan pemboleh ubah awam dalam VBA pada tahap modul.

Untuk menggunakan pemboleh ubah untuk semua subproses dalam modul yang sama, kita perlu menyatakan pemboleh ubah di bahagian atas modul sebelum kita memulakan sebarang makro.

Berikut adalah contoh tangkapan skrin untuk pemahaman anda.

Seperti yang dapat kita lihat pada gambar di atas, saya telah menyatakan dua pemboleh ubah sebelum saya memulakan sebarang makro dalam modul. Kini, kedua-dua pemboleh ubah ini boleh digunakan dalam sebilangan makro dalam modul ini.

Di dalam subprosedur, mula menaip nama pemboleh ubah, anda dapat melihat senarai IntelliSense akan memunculkan nama pemboleh ubah.

Sekarang kita dapat menggunakan pemboleh ubah ini dalam semua makro yang kita tulis di "Module1".

Pemboleh ubah ini terhad untuk digunakan dalam modul ini sahaja. Sebagai contoh, sekarang, saya akan memasukkan satu lagi modul dan menulis makro baru.

Dalam Modul2, saya tidak dapat menggunakan pemboleh ubah yang telah kita nyatakan dalam "Modul1"

Oleh itu, bagaimana kita boleh menjadikan pemboleh ubah ini menjadi umum di VBA untuk digunakan di semua modul dan di semua sub prosedur?

# 2 - Menyatakan Pemboleh ubah menggunakannya secara terbuka

Kembali ke "Modul1" dalam modul ini. Kami telah menyatakan pemboleh ubah sebelum mula menulis cara makro dan juga dunia apa yang telah kami gunakan untuk menyatakan pemboleh ubah tersebut.

Cara tradisional kami menggunakan kata "DIM" kami telah menyatakan pemboleh ubah ini.

Apabila kita hanya menggunakan kata "DIM", hanya terbatas untuk digunakan di semua makro tetapi dalam modul yang sama.

Daripada kata "DIM", kita perlu menggunakan kata "PUBLIC" atau "GLOBAL" untuk menjadikannya tersedia untuk digunakan di semua modul makro.

Saya telah menggunakan perkataan "Global" untuk membuat pengisytiharan pemboleh ubah menjadi umum. Anda juga dapat menggunakan kata "Umum".

Oleh itu, dengan menggunakan kata-kata "Global" dan "Public", kita dapat menyatakan pemboleh ubah yang dapat digunakan untuk semua makro di seluruh modul.

Perkara yang Perlu Diingat

  • Merupakan amalan yang baik untuk menyatakan pemboleh ubah secara terbuka tetapi memerlukan banyak pengalaman sebelum menyatakannya.
  • Setelah makro mula berlari, nilai makro pemboleh ubah akan sama.
  • Berikan nilai tertentu ke pemboleh ubah di dalam makro tertentu hanya untuk mengelakkan sebarang kekeliruan.

Artikel menarik...