Hasilkan Nomor Acak menggunakan Fungsi VBA RND

Nomor Acak VBA Excel

Untuk menghasilkan nomor acak di vba kita memiliki fungsi inbuilt yang disebut RND . Ini hanya membutuhkan argumen sejumlah untuk menghasilkan angka acak dan ini juga merupakan parameter opsional. Ini akan membuat angka acak yang lebih besar dari 0 dan lebih kecil dari 1.

Ini berfungsi persis sama dengan fungsi excel "RAND". Seperti yang saya katakan dalam fungsi lembar kerja "RAND" di VBA juga, kita bisa menghasilkan angka acak yang lebih besar dari 0 tetapi kurang dari 1.

Sekarang lihat sintaks dari fungsi "RND".

(Angka): Kita dapat menyampaikan argumen dengan tiga cara.

  • Jika kita melewatkan nomor sebagai <0, itu terus menghasilkan nomor acak yang sama setiap saat.
  • Jika kita memberikan angka sebagai 0, itu akan mengulangi angka terbaru yang telah diberikan.
  • Jika kita melewatkan angka> 0, itu tetap memberi Anda nomor acak yang berbeda, yaitu nomor acak berikutnya dalam urutan.

Bagaimana Cara Menghasilkan Angka Acak menggunakan Kode VBA?

Contoh 1

Sekarang kita akan melihat contoh sederhana menggunakan fungsi "RND". Ikuti langkah-langkah di bawah ini untuk menulis kode VBA Anda sendiri.

Langkah 1: Deklarasikan variabel sebagai "Integer" di VBA.

Kode:

Sub Rnd_Example1 () Dim K Sebagai Integer End Sub

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

Kode:

Sub Rnd_Example1 () Dim K Sebagai Integer K = Rnd () End Sub

Langkah 3: Tampilkan nilai yang dikembalikan oleh variabel "k" di kotak pesan .

Kode:

Sub Rnd_Example1 () Dim K Sebagai Integer K = Rnd () MsgBox K End Sub

Sekarang jalankan makro excel dan lihat apa hasilnya.

Lihat apa yang terjadi.

Ini menunjukkan hasil sebagai 1 di mana fungsi "RND" hanya dapat mengembalikan angka yang lebih besar dari nol tetapi kurang dari 1.

Anda pasti berpikir tentang apa yang salah di sini.

Hal yang salah di sini adalah jenis tipe data yang telah kami tetapkan ke variabel "k".

Jika Anda melihat kembali variabel yang telah kami deklarasikan, kami telah menetapkan tipe data sebagai Integer. Karena kami telah menetapkan variabel sebagai Integer, itu hanya dapat menampilkan bilangan bulat antara -32768 hingga 32767.

Setiap kali RND mengembalikan angka desimal, VBA mengonversi angka desimal ke bilangan bulat terdekat, yaitu 1.

Jadi, agar rumus berfungsi dengan baik, deklarasikan variabel sebagai " Ganda ".

"Double" adalah tipe data di VBA yang dapat menampung nilai desimal.

Kode:

Sub Rnd_Example1 () Dim K Sebagai Ganda K = Rnd () MsgBox K End Sub

Sekarang kodenya dan lihat apa hasilnya.

Klik ok dan jalankan sekali lagi dan lihat apa hasilnya.

Kali ini kami mendapatkan hasil yang berbeda. Karena "RND" adalah fungsi yang mudah menguap, ia mereproduksi hasil yang berbeda setiap kali Anda menjalankan kode.

Contoh # 2 - Dapatkan Nomor Acak yang Sama Setiap Saat

Seperti yang telah kita lihat pada contoh e sebelumnya, fungsi "RND" mereproduksi hasil setiap kali kita mengeksekusi kode. Untuk mendapatkan nomor acak yang sama, berulang kali, kita perlu meneruskan argumen sebagai nol.

Kode:

Sub Rnd_Example2 () Dim K Sebagai Ganda K = Rnd (0) MsgBox K End Sub

Ini akan menghasilkan angka yang sama berulang kali saat kita mengeksekusi kodenya.

Contoh # 3 - Hasilkan Bilangan Acak Utuh

Kami juga dapat menghasilkan bilangan bulat dengan menggunakan fungsi VBA lain atau bilangan input lainnya. Misalnya, lihat kode di bawah ini.

Kode:

Sub Rnd_Example3 () Dim K Sebagai Ganda K = 1 + Rnd * 100 MsgBox K End Sub

Kode ini akan menghasilkan bilangan bulat acak dengan titik desimal setiap kali kita menjalankan kode.

Jika Anda melihat bilangan bulat tanpa titik desimal, maka kita dapat menggunakan kode di bawah ini.

Kode:

Sub Rnd_Example3 () Dim K Sebagai Ganda K = CInt (1 + Rnd * 100) MsgBox K End Sub

Ini akan terus menghasilkan bilangan bulat dari 1 hingga 100.

Artikel yang menarik...