VBA RND İşlevini Kullanarak Rastgele Sayılar Oluşturun

Excel VBA Rastgele Sayılar

Vba'da rastgele sayılar üretmek için RND adında bir dahili fonksiyonumuz var . Rastgele sayılar üretmek için bir argüman bir sayı alır ve bu da isteğe bağlı bir parametredir. 0'dan büyük ve 1'den küçük rastgele sayılar oluşturacaktır.

Bu, "RAND" excel işlevi ile tamamen aynı şekilde çalışır. VBA'daki "RAND" çalışma sayfası işlevinde de söylediğim gibi, 0'dan büyük ancak 1'den küçük rastgele sayılar üretebiliriz.

Şimdi "RND" işlevinin sözdizimine bir göz atın.

(Sayı): Argümanı üç şekilde iletebiliriz.

  • Sayıyı <0 olarak geçersek, her seferinde aynı rasgele sayıyı üretmeye devam eder.
  • Sayıyı 0 olarak geçersek en son verdiği sayıyı tekrar edecektir.
  • Eğer> 0 sayısını geçersek, bu size farklı rastgele sayılar, yani dizideki bir sonraki rasgele sayıyı vermeye devam eder.

VBA Kodunu Kullanarak Rastgele Sayılar Nasıl Üretilir?

Örnek 1

Şimdi "RND" işlevini kullanmanın basit bir örneğini göreceğiz. VBA kodunu kendi başınıza yazmak için aşağıdaki adımları izleyin.

Adım 1: Değişkeni VBA'da "Tamsayı" olarak bildirin.

Kod:

Alt Rnd_Example1 () Dim K As Integer End Sub

Adım 2: Şimdi " RND " fonksiyonu aracılığıyla "k" değişkenine değeri atayın .

Kod:

Alt Rnd_Example1 () Dim K As Integer K = Rnd () End Sub

Adım 3: Mesaj kutusunda "k" değişkeninin döndürdüğü değeri gösterin .

Kod:

Alt Rnd_Example1 () Dim K As Integer K = Rnd () MsgBox K End Sub

Şimdi excel makrosunu çalıştırın ve sonucun ne olduğunu görün.

Bak ne oldu.

Sonucu 1 olarak gösteriyor, burada "RND" işlevi yalnızca sıfırdan büyük ancak 1'den küçük sayılar döndürebiliyor.

Buradaki yanlış şeyin ne olduğunu düşünüyor olmalısın.

Burada yanlış olan şey, "k" değişkenine atadığımız veri tipidir.

Bildirdiğimiz değişkene tekrar bakarsanız, veri tipini Tamsayı olarak atadık. Değişkeni Tamsayı olarak atadığımız için, sadece -32768 ile 32767 arasındaki tam sayıları gösterebilir.

RND ondalık sayıyı döndürdüğünde, VBA ondalık sayıyı en yakın tam sayıya, yani 1'e dönüştürür.

Bu nedenle, formülün düzgün çalışmasını sağlamak için değişkeni " Çift " olarak bildirin .

"Çift", VBA'daki ondalık değerleri tutabilen veri türüdür.

Kod:

Alt Rnd_Example1 () Dim K As Double K = Rnd () MsgBox K End Sub

Şimdi kodu ve sonucun ne olduğunu görün.

Tamam'a tıklayın ve bir kez daha çalıştırın ve sonucun ne olduğunu görün.

Bu sefer farklı bir sonuç aldık. "RND" doğası gereği uçucu bir işlev olduğundan, kodu her çalıştırdığınızda farklı sonuçlar üretir.

Örnek 2 - Her Defasında Aynı Rastgele Sayıyı Alın

Önceki örnek e'de gördüğümüz gibi, "RND" işlevi, kodu her çalıştırdığımızda sonucu yeniden üretir. Aynı rastgele sayıyı tekrar tekrar elde etmek için argümanı sıfır olarak geçmemiz gerekir.

Kod:

Alt Rnd_Example2 () Dim K As Double K = Rnd (0) MsgBox K End Sub

Bu, kodu çalıştırdığımızda aynı numarayı tekrar tekrar üretecektir.

Örnek 3 - Rastgele Tam Sayı Üretme

Diğer VBA işlevlerini veya diğer giriş sayılarını kullanarak da tam sayılar üretebiliriz. Örneğin, aşağıdaki koda bakın.

Kod:

Alt Rnd_Example3 () Dim K As Double K = 1 + Rnd * 100 MsgBox K End Sub

Bu kod, kodu her çalıştırdığımızda ondalık noktalı rastgele tam sayılar üretecektir.

Ondalık nokta olmadan tam sayılara bakıyorsanız, aşağıdaki kodu kullanabiliriz.

Kod:

Alt Rnd_Example3 () Dim K As Double K = CInt (1 + Rnd * 100) MsgBox K End Sub

Bu, 1'den 100'e kadar olan tam sayıları oluşturmaya devam edecektir.

Ilginç makaleler...