Bagaimana cara menghasilkan angka acak di vba?

Di VBA, Anda dapat menggunakan berbagai cara untuk menghasilkan angka acak di Excel, dan dalam artikel ini, kita akan melihat semuanya satu per satu.

fungsi RND

Untuk menghasilkan angka acak, di VBA ada fungsi yang disebut RND . Fungsi ini berarti acak dan ketika Anda menggunakan fungsi ini dalam kode, ia mengembalikan angka acak antara 0 dan 1. Di RND Anda tidak perlu menentukan argumen apa pun.

 Range("A1") = Rnd()

Kode di atas menggunakannya untuk mendapatkan nomor acak di A1 dan mengembalikan 0,705547521.

menghasilkan nomor acak di vba

Namun saat Anda menggunakannya untuk seluruh rentang, ia mengembalikan angka acak yang sama di seluruh rentang dan menjadikannya nol untuk digunakan menghasilkan angka acak lebih dari sekali.

mengembalikan nomor acak yang sama

Nah, di sini tidak masuk akal untuk menggunakannya, bukan? Namun ada solusi yang bisa Anda gunakan, FOR NEXT LOOP .

gunakan untuk loop berikutnya

Pada kode di atas Anda memiliki perulangan yang melewati 10 sel (satu per satu) mulai dari sel yang dipilih dan menambahkan nomor acak.

Berikut kode lengkapnya:

 Sub vba_random_number() Dim i As Long i = 10 For i = 1 To i ActiveCell.Value = Rnd() ActiveCell.Offset(1, 0).Select Next i End Sub

Angka acak di antara dua angka

Jika Anda ingin menghasilkan angka acak antara dua angka yang ditentukan, dalam hal ini Anda perlu menulis kode menggunakan dua fungsi VBA ( RND + INT ). Kode rumusnya akan seperti di bawah ini.

angka-acak-antara-dua-angka
 Sub vba_random_number() Dim myRnd As Integer myRnd = Int(2 + Rnd * (45 - 10 + 1)) Range("A1") = myRnd End Sub

Saat Anda menjalankan makro ini , RND menggunakan angka maksimum dan angka minimum yang Anda tetapkan untuk menghasilkan angka acak, dan INT menghilangkan tempat desimal.

rnd-gunakan-angka-maks-dan-min

Menggunakan Fungsi Lembar Kerja dalam Kode VBA untuk Menghasilkan Angka Acak

Di VBA, Anda bisa mengakses fungsi lembar kerja dan menggunakannya untuk mendapatkan hasil dengan menentukan argumen. Dua fungsi spreadsheet dapat membantu Anda mendapatkan angka acak pada hasilnya.

  • RandAntara
  • RandTableau

Sebelum menggunakan fungsi ini, pastikan Anda memahami argumen yang perlu Anda tetapkan. Sekarang pada kode di bawah ini Anda memiliki RANDBETWEEN yang menghasilkan angka acak antara dua angka.

penggunaan-randbetween-menghasilkan-angka-acak-antara-dua-angka
 Range("A1") = WorksheetFunction.RandBetween(1000, 2000)

Di sini angka maksimumnya adalah 2000 dan angka minimumnya adalah 1000. Demikian pula, Anda dapat menggunakan RANDARRAY yang merupakan fungsi array dinamis.

Ini kodenya.

 Range("A1:B10") = WorksheetFunction.RandArray(10, 2, 1000, 2000, True)
gunakan-randarray-yang-merupakan-fungsi-array-dinamis

Jika Anda melihat sintaks RANDARRAY, Anda akan menemukan bahwa Anda dapat memasukkan angka acak dalam rentang bilangan bulat, yang tidak mungkin dilakukan dengan semua metode yang kita bahas di atas.

sintaksis randarray

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *