Nilai acak sering kita gunakan sebagai simulasi atau menghasilkan data contoh. Pada VBA, fungsi untuk menghasilkan nilai acak adalah RND().
Pemanggilan fungsi RND akan menghasilkan nilai pecahan dari 0 s/d 1, misalkan nilai 0.96 atau 0.056.
Selain itu, fungsi ini dapat menerima satu parameter bertipe nilai numerik dengan syntax sebagai berikut.
RND(PARAMETER_ANGKA)
- nilai di bawah nol ( <0 ), akan menghasilkan nilai acak pertama kali saja. Setelah itu nilainya tidak akan berubah-ubah.
- nilai di atas nol ( >0 ), akan menghasilkan nilai acak berikutnya.
- nilai nol ( 0 ), akan menghasilkan nilai yang sama dengan nilai acak terakhir yang dihasilkan.
Semua nilai parameter di atas akan tetap menghasilkan nilai acak pecahan dari 0 s/d 1.
Jika Anda ingin mengambil rentang nilai diantara 0 s/d 100 maka dapat menggunakan kode berikut:
Jika Anda ingin mengambil rentang nilai diantara 0 s/d 100 maka dapat menggunakan kode berikut:
RND() * 100
Dan jika Anda ingin mengambil rentang nilai yang memiliki nilai negatif, misalkan diantara -50 s/d 50 maka dapat menggunakan kode berikut:
RND() * 100 - 50
Berikut adalah contoh code VBA pada satu worksheet yang memiliki 3 button dan telah diassign macro masing-masing button1_click, button2_click dan button3_click untuk mensimulasikan penggunaan berbagai variasi fungsi RND. Contoh file Excelnya dapat Anda download disini.
Sub Button1_Click() Sheet1.Range("A1") = "Rnd()" Sheet1.Range("B1") = "Rnd(0)" Sheet1.Range("C1") = "" Sheet1.Range("D1") = "Rnd(5)" Sheet1.Range("A2") = Rnd() Sheet1.Range("B2") = Rnd(0) Sheet1.Range("C2") = "" Sheet1.Range("D2") = Rnd(5) End Sub Sub Button2_Click() Sheet1.Range("A1") = "Rnd()" Sheet1.Range("B1") = "Rnd(0)" Sheet1.Range("C1") = "Rnd(-5)" Sheet1.Range("D1") = "Rnd(5)" Sheet1.Range("A2") = Rnd() Sheet1.Range("B2") = Rnd(0) Sheet1.Range("C2") = Rnd(-5) Sheet1.Range("D2") = Rnd(5) End Sub Sub Button3_Click() Sheet1.Range("A1") = "0.00 s/d 100.00" Sheet1.Range("B1") = "0 s/d 100" Sheet1.Range("C1") = "-50 s/d 50" Sheet1.Range("D1") = "" Sheet1.Range("A2") = Rnd() * 100 Sheet1.Range("B2") = CInt(Rnd() * 100) Sheet1.Range("C2") = CInt(Rnd() * 100 - 50) Sheet1.Range("D2") = "" End Sub
~~~ Semoga Bermanfaat ~~~
No comments:
Post a Comment