Hasilkan Nombor Rawak menggunakan Fungsi VBA RND

Isi kandungan

Nombor Rawak Excel VBA

Untuk menghasilkan nombor rawak dalam vba, kita mempunyai fungsi terbina dalam yang disebut RND . Hanya memerlukan nombor argumen untuk menghasilkan nombor rawak dan ini juga merupakan parameter pilihan. Ia akan membuat nombor rawak yang lebih besar daripada 0 dan lebih kecil daripada 1.

Ini berfungsi sama seperti fungsi excel "RAND." Seperti yang saya nyatakan dalam fungsi lembar kerja "RAND" di VBA juga, kita dapat menghasilkan nombor rawak yang lebih besar daripada 0 tetapi kurang dari 1.

Sekarang lihat sintaks fungsi "RND".

(Nombor): Kami dapat menyampaikan hujah dalam tiga cara.

  • Sekiranya kita lulus nombor sebagai <0, ia akan terus menghasilkan nombor rawak yang sama setiap masa.
  • Sekiranya kita memberikan nombor sebagai 0, ia akan mengulangi nombor terakhir yang diberikannya.
  • Sekiranya kita lulus nombor> 0, ia akan terus memberikan nombor rawak yang berbeza, iaitu nombor rawak seterusnya dalam urutan.

Bagaimana Menjana Nombor Rawak menggunakan Kod VBA?

Contoh # 1

Sekarang kita akan melihat contoh mudah menggunakan fungsi "RND". Ikuti langkah di bawah untuk menulis kod VBA anda sendiri.

Langkah 1: Nyatakan pemboleh ubah sebagai "Integer" di VBA.

Kod:

Sub Rnd_Contoh1 () Dim K Sebagai Sub End Integer

Langkah 2: Sekarang tetapkan nilai ke pemboleh ubah "k" melalui fungsi " RND ".

Kod:

Sub Rnd_Contoh1 () Dim K Sebagai Integer K = Rnd () Sub Akhir

Langkah 3: Tunjukkan nilai yang dikembalikan oleh pemboleh ubah "k" di kotak mesej .

Kod:

Sub Rnd_Contoh1 () Dim K Sebagai Integer K = Rnd () MsgBox K Akhir Sub

Sekarang jalankan makro excel dan lihat apa hasilnya.

Lihatlah apa yang telah berlaku.

Ini menunjukkan hasilnya sebagai 1 di mana fungsi "RND" hanya dapat mengembalikan nombor yang lebih besar daripada sifar tetapi kurang dari 1.

Anda mesti memikirkan apa yang salah di sini.

Perkara yang salah di sini adalah jenis jenis data yang telah kami tetapkan pada pemboleh ubah "k."

Sekiranya anda melihat kembali pemboleh ubah yang telah kami nyatakan, kami telah menetapkan jenis data sebagai Integer. Oleh kerana kami telah menetapkan pemboleh ubah sebagai Integer, ia hanya dapat menunjukkan nombor bulat antara -32768 hingga 32767.

Setiap kali RND mengembalikan nombor perpuluhan, VBA menukar nombor perpuluhan menjadi bilangan bulat terdekat, iaitu, 1.

Jadi, untuk menjadikan formula berfungsi dengan baik, nyatakan pemboleh ubah sebagai " Double "

"Double" adalah jenis data dalam VBA yang dapat menahan nilai perpuluhan.

Kod:

Sub Rnd_Contoh1 () Dim K Sebagai Ganda K = Rnd () MsgBox K Akhir Sub

Sekarang kod dan lihat apa hasilnya.

Klik ok dan jalankan sekali lagi dan lihat apa hasilnya.

Kali ini kami mendapat keputusan yang berbeza. Oleh kerana "RND" adalah fungsi yang tidak stabil, ia menghasilkan hasil yang berbeza setiap kali anda menjalankan kod tersebut.

Contoh # 2 - Dapatkan Nombor Rawak yang Sama Setiap Kali

Seperti yang telah kita lihat pada contoh sebelumnya e, fungsi "RND" menghasilkan semula hasilnya setiap kali kita melaksanakan kod tersebut. Untuk mendapatkan nombor rawak yang sama, berulang kali, kita perlu meneruskan argumen sebagai sifar.

Kod:

Sub Rnd_Contoh2 () Dim K Sebagai Ganda K = Rnd (0) MsgBox K Akhir Sub

Ini akan menghasilkan nombor yang sama berulang kali ketika kita melaksanakan kod tersebut.

Contoh # 3 - Hasilkan Nombor Rawak Keseluruhan

Kami juga dapat menghasilkan nombor bulat dengan menggunakan fungsi VBA lain atau nombor input lain. Contohnya, lihat kod di bawah.

Kod:

Sub Rnd_Contoh3 () Dim K Sebagai Double K = 1 + Rnd * 100 MsgBox K Akhir Sub

Kod ini akan menghasilkan nombor bulat secara rawak dengan titik perpuluhan setiap kali kita melaksanakan kod tersebut.

Sekiranya anda melihat nombor bulat tanpa titik perpuluhan, maka kita boleh menggunakan kod di bawah.

Kod:

Sub Rnd_Contoh3 () Dim K Sebagai Double K = CInt (1 + Rnd * 100) MsgBox K End Sub

Ini akan terus menghasilkan nombor bulat dari 1 hingga 100.

Artikel menarik...