Vba'da rastgele sayılar nasıl oluşturulur?

VBA’da Excel’de rastgele sayı oluşturmak için farklı yöntemler kullanabilirsiniz ve bu yazımızda hepsine tek tek bakacağız.

RND işlevi

Rastgele bir sayı oluşturmak için VBA’da RND adında bir işlev vardır. Bu fonksiyon rastgele anlamına gelir ve bu fonksiyonu kodda kullandığınızda 0 ile 1 arasında rastgele bir sayı döndürür. RND’de herhangi bir argüman belirtmenize gerek yoktur.

 Range("A1") = Rnd()

Yukarıdaki kod bunu A1’de rastgele bir sayı elde etmek için kullanır ve 0,705547521 değerini döndürür.

vba'da rastgele sayı oluşturma

Ancak bunu bir aralığın tamamı için kullandığınızda, aralığın tamamında aynı rastgele sayıyı döndürür ve bu, birden fazla kez rastgele sayılar oluşturmak için kullanılmasını geçersiz kılar.

aynı-rastgele-sayıyı döndür

Şimdi, bunu kullanmanın bir anlamı yok, değil mi? Ancak kullanabileceğiniz bir çözüm var, FOR SONRAKİ DÖNGÜ .

sonraki döngü için kullan

Yukarıdaki kodda, seçilen hücreden başlayarak 10 hücreden (tek tek) geçen ve rastgele bir sayı ekleyen bir döngünüz var.

İşte kodun tamamı:

 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

İki sayı arasındaki rastgele sayı

Tanımlı iki sayı arasında rastgele bir sayı oluşturmak istiyorsanız bu durumda iki VBA fonksiyonunu ( RND + INT ) kullanarak kod yazmanız gerekir. Bu formülün kodu aşağıdaki gibi olacaktır.

iki sayı arasındaki rastgele sayı
 Sub vba_random_number() Dim myRnd As Integer myRnd = Int(2 + Rnd * (45 - 10 + 1)) Range("A1") = myRnd End Sub

Bu makroyu çalıştırdığınızda , RND rastgele sayıyı oluşturmak için ayarladığınız maksimum sayıyı ve minimum sayıyı kullanır ve INT ondalık basamağı kaldırır.

maksimum-ve-mini-sayıyı-kullanın

Rastgele Bir Sayı Oluşturmak için VBA Kodunda Çalışma Sayfası İşlevlerini Kullanma

VBA’da çalışma sayfası işlevlerine erişebilir ve bağımsız değişkenleri belirterek sonuç almak için bunları kullanabilirsiniz. İki elektronik tablo işlevi, sonuçta rastgele bir sayı elde etmenize yardımcı olabilir.

  • RandBetween
  • RandTableau

Bu işlevleri kullanmadan önce ayarlamanız gereken bağımsız değişkenleri anladığınızdan emin olun. Şimdi aşağıdaki kodda, iki sayı arasında rastgele bir sayı üreten RANDBETWEEN’e sahipsiniz.

kullanımı-randbetween-iki-sayılar arasında-rastgele-bir-sayı oluşturur
 Range("A1") = WorksheetFunction.RandBetween(1000, 2000)

Burada maksimum sayı 2000, minimum sayı ise 1000’dir. Benzer şekilde dinamik dizi fonksiyonu olan RANDARRAY’i kullanabilirsiniz.

İşte kod.

 Range("A1:B10") = WorksheetFunction.RandArray(10, 2, 1000, 2000, True)
dinamik bir dizi işlevi olan randarray işlevini kullanın

RASTGELE’nin sözdizimine bakarsanız, bir tamsayı aralığında rastgele sayılar girebileceğinizi göreceksiniz ki bu, yukarıda tartıştığımız tüm yöntemler için mümkün değildir.

randarray-sözdizimi

Yorum ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir