Pemboleh ubah Awam VBA

Pemboleh ubah Awam dalam VBA

"Pemboleh ubah Awam" di 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 berbeza. Jadi, apabila pemboleh ubah dinyatakan 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.

Anda boleh memuat turun Templat Excel Pembolehubah Awam VBA ini di sini - Templat Excel Pemboleh ubah Awam VBA

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, di bawah ini 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 subprocedure pertama "Public_Variable". Ini adalah batasan menyatakan pemboleh ubah di dalam subproses.

# 1 - Pemboleh ubah Tahap Modul

Seperti yang kita semua tahu bahawa kita menulis makro dalam modul, kita dapat memasukkan sejumlah modul. Kita boleh menyatakan dua jenis "Pemboleh ubah Awam" di VBA, yang pertama 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 di peringkat 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 subproses mulai 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 kita telah menyatakan pemboleh ubah sebelum kita mula menulis cara makro dan juga dunia apa yang telah kita gunakan untuk menyatakan pemboleh ubah tersebut.

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

Apabila kita hanya menggunakan kata "DIM", ia hanya terhad 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 pernyataan 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 berjalan merentasi nilai makro pemboleh ubah akan sama.
  • Berikan nilai tertentu ke pemboleh ubah di dalam makro tertentu hanya untuk mengelakkan sebarang kekeliruan.