Excel VBA: Yineleme Olmadan Rastgele Sayı Üreteci (4 Örnek)

  • Bunu Paylaş
Hugh West

Bu makalede 4 örnek gösterilmektedir rastgele sayı üreteci Burada kodumuzu yapılandırmak için Excel'in yerleşik Rnd işlevini kullanacağız. Benzersiz rastgele sayılar üretme tekniklerini öğrenmek için örneklere dalalım.

Alıştırma Çalışma Kitabını İndirin

Bu makaleyi okurken egzersiz yapmak için bu alıştırma çalışma kitabını indirin.

Mükerrer Olmayan Rastgele Sayı Üreteci.xlsm

4 Excel VBA'da Yineleme Olmadan Rastgele Sayı Oluşturucu Örnekleri

Visual Basic Düzenleyicisinde Kod Yazma

için kopyası olmayan rastgele sayılar üretir , ihtiyacımız var açık ve VBA kodu yazma içinde görsel temel düzenleyici. Takip edin adımlar için açık ve görsel temel düzenleyici ve oraya biraz kod yazın.

  • Şuraya git Geliştirici sekmesinden Excel Şeridi .
  • Tıklayın ve Visual Basic seçeneği.

  • İçinde Uygulamalar İçin Visual Basic penceresinde Açılır menü ekle için seçin ve Yeni Modül seçenek.

Şimdi kod içinde görsel kod düzenleyici ve F5 tuşuna basın için koşmak o.

1. Yinelemesiz Rastgele Sayı Oluşturmak için VBA Rnd İşlevinin Kullanımı

Bu Rnd işlevi içinde kullanılır Excel VBA için rastgele sayı üretme bunlar 0 arasında ve 1 özel.

Görev : 10 rastgele sayı oluşturun arasında 0 ve 1 içinde A1:A10 hücreleri.

Kod : Ekleme aşağıdaki kod içinde görsel temel düzenleyici ve basın F5 için koşmak o.

 Public Sub GenerateRandomNumNoDuplicates() Set cellRange = Range("A1:A10") cellRange.Clear For Each Rng In cellRange randomNumber = Rnd Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = Rnd Loop Rng.Value = randomNumber Next End Sub 

Çıktı : Yukarıdaki ekran görüntüsü şunları gösterir 10 benzersiz rastgele sayı içinde 0 ve 1 aralığı.

Kod Açıklaması:

Bu kodda, kullandığımız Rnd işlevi için rastgele sayılar ekleyin içinde A1:A10 hücre aralığı . Önce yerleştirme a yeni numara kullandık. Do While Döngüsü için bak için sayı içinde önceden tanımlanmış hücre aralığı (A1:A10) ister zaten var veya değil Kontrol etmek için varoluş .. sayı içinde hücre aralığı ile kodu yapılandırdık, her seferinde COUNTIF işlevi , Bu fonksiyon kontroller a yeni rastgele sayı içinde Liste . eklemeden önce zaten var olan numaralar.

Daha fazlasını okuyun: Rastgele Sayı Oluşturmak için Excel Formülü (5 örnek)

2. Tanımlanmış Alt Sınır ve Üst Sınır için Yineleme Olmadan Rastgele Sayı Üreteci

için rastgele sayı üretme içinde tanımlanmış aralık 'yi ayarlamamız gerekiyor. lowerbound ve upperbound Bilgi için, VBA kodumuzda lowerbound bu en düşük sayı ve upperbound bu en yüksek sayı içinde aralık Rastgele sayı üreteci için aşağıdakileri kullanabiliriz formül kodumuzda.

(upperbound - lowerbound + 1) * Rnd + lowerbound

2.1 Rastgele Sayı Üreteci - Ondalık

Görev : 10 rastgele sayı oluşturun arasında 10 ve 20 içinde A1:A10 hücreleri.

Kod : Ekleme aşağıdaki kod içinde görsel temel düzenleyici ve basın F5 için koşmak o.

 Public Sub GenerateRandomNumNoDuplicates() lowerbound = 1 upperbound = 10 Set cellRange = Range("A1:A10") cellRange.Clear For Each Rng In cellRange randomNumber = (upperbound - lowerbound + 1) * Rnd + lowerbound Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = (upperbound - lowerbound + 1) * Rnd + lowerbound Loop Rng.Value =randomNumber Next End Sub 

Çıktı : Yukarıdaki ekran görüntüsü şunları gösterir 10 benzersiz rastgele sayı içinde 1 ve 10 aralığında.

2.2 Rastgele Sayı Üreteci - Tamsayı

Bu örnekte, şu öğeyi kullanacağız VBA Int işlevi için Kaldır ve kesirli kısım bir şey yok. rastgele sayılar .

Görev : 20 rastgele tam sayı oluşturun arasında 1 ve 20 içinde A1:B10 hücreleri.

Kod : Ekleme aşağıdaki kod içinde görsel temel düzenleyici ve basın F5 için koşmak o.

 Public Sub GenerateRandomNumNoDuplicates() lowerbound = 1 upperbound = 20 Set cellRange = Range("A1:B10") cellRange.Clear For Each Rng In cellRange randomNumber = Int((upperbound - lowerbound + 1) * Rnd + lowerbound) Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = Int((upperbound - lowerbound + 1) * Rnd + lowerbound) LoopRng.Value = randomNumber Next End Sub 

Çıktı : Yukarıdaki ekran görüntüsü şunları gösterir 20 benzersiz rastgele tam sayı içinde 1 ve 20 aralığı.

Daha fazlasını okuyun: Excel'de Tekrarsız Rastgele Sayı Oluşturucu (9 Yöntem)

Benzer Okumalar

  • Excel'de Veri Analiz Aracı ve Fonksiyonları ile Rastgele Sayı Üreteci
  • Excel'de Rastgele Veri Nasıl Oluşturulur (9 Kolay Yöntem)
  • Excel'de Rastgele 5 Haneli Sayı Oluşturucu (7 Örnek)
  • Excel'de Rastgele 4 Haneli Sayı Oluşturucu (8 Örnek)
  • Excel'de Listeden Rastgele Sayı Oluşturma (4 Yol)

3. Excel VBA'da Benzersiz Rastgele Sayı Oluşturucu için Ondalık Basamakları Belirtme

Kullanabiliriz Yuvarlak fonksiyon kodumuzda belirtmek ve sayı . ondalık basamaklar içinde rastgele oluşturulmuş benzersiz numaralar . Bu sözdizimi fonksiyonun-

Round(expression, [numdecimalplaces])

Yapmamız gereken belirtmek ve 2. argüman göre gereklilik .

Görev : 2 ondalık basamaklı 20 rastgele sayı oluşturun arasında 1 ve 20 içinde A1:B10 hücreleri.

Kod : Ekleme aşağıdaki kod içinde görsel temel düzenleyici ve basın F5 için koşmak o.

 Public Sub GenerateRandomNumNoDuplicates() lowerbound = 1 upperbound = 20 Set cellRange = Range("A1:B10") cellRange.Clear For Each Rng In cellRange randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, 2) Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, 2)Döngü Rng.Value = randomNumber Sonraki End Sub 

Çıktı : Yukarıdaki ekran görüntüsü şunları gösterir 2 ondalık basamaklı 20 benzersiz rastgele tam sayı içinde 1 ve 20 aralığı.

Daha fazlasını okuyun: Excel'de Ondalıklarla Rastgele Sayı Oluşturma (3 Yöntem)

4. Excel VBA'da Yineleme Olmadan Rastgele Sayı Üreteci için Kullanıcı Formu Geliştirme

Bu örnekte, bir Kullanıcı Formu içinde Excel VBA için rastgele sayı üretme ile mükerrer yok .

Görev: 20 rastgele sayı oluşturun hücre aralığında A1:B10 kullanarak Kullanıcı Formu ile giriş değerleri (i) lowerbound (ii) upperbound (iii) ondalık basamak sayısı.

Bir UserForm oluşturun:

Oluşturmak için aşağıdaki adımları izleyin Kullanıcı Formu bizim istenen giriş alanları .

  • Şuraya git Geliştirici sekmesinden Excel Şeridi .
  • Tıklayın ve Visual Basic seçeneği.

  • İçinde Uygulamalar İçin Visual Basic penceresinde Açılır menü ekle için seçin ve Kullanıcı Formu seçenek.

  • İçinde UserForm ekle a etiket .
  • Başlık etiket olarak LowerBound özelliklerde.

  • Ekle iki daha fazla etiketler isimli Upperbund ve OndalıkBirimler .

  • Şimdi ekleyin üç Metin Kutusu içinde Kullanıcı Formu .

  • Bu aşamada, ekle a CommandButton ve adını Oluşturmak .

  • Şimdi, çift tıklama ve CommandButton ve aşağıdakileri koyun kod içinde kod düzenleyici .
 Private Sub CommandButton1_Click() Dim lowerbound As Integer Dim upperbound As Integer Dim decimalPlaces As Integer lowerbound = Val(TextBox1.Text) upperbound = Val(TextBox2.Text) decimalPlaces = Val(TextBox3.Text) Set cellRange = Range("A1:B10") cellRange.Clear For Each Rng In cellRange randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, decimalPlaces) Do WhileApplication.WorksheetFunction.CountIf(cellRange, randomNumber)>= 1 randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, decimalPlaces) Loop Rng.Value = randomNumber Next End Sub 

  • Basın F5 için koşmak ve kod ve Kullanıcı Formu var ortaya çıktı .
  • koy lowerbound , Yukarıdan, ve sayı . ondalık basamaklar içinde Kullanıcı Formu ve vurmak Düğme Oluştur .

Çıktı : In A1:B10 hücreleri var 20 rastgele sayı ile 2 ondalık basamak içinde 1 ila 30 aralığında.

Daha fazlasını okuyun: Excel'de Yinelemesiz Rastgele Sayılar Nasıl Oluşturulur (7 Yol)

Hatırlanması Gerekenler

  • Biz de kullanabiliriz Fonksiyonu düzelt yerine Int işlevi için benzersiz tam sayılar üretir . fonksiyon kaldırır ve kesirli kısım bir sayı tıpkı Int işlevi .

Sonuç

Şimdi, uygun örnekler yardımıyla Excel'de VBA kullanarak benzersiz rastgele sayıların nasıl oluşturulacağını biliyoruz. Umarım, işlevselliği daha güvenli bir şekilde kullanmanıza yardımcı olur. Herhangi bir sorunuz veya öneriniz varsa, bunları aşağıdaki yorum kutusuna yazmayı unutmayın.

Hugh West, sektörde 10 yılı aşkın deneyime sahip oldukça deneyimli bir Excel eğitmeni ve analistidir. Muhasebe ve Finans alanında lisans derecesine ve İşletme alanında yüksek lisans derecesine sahiptir. Hugh öğretme tutkusuna sahiptir ve takip etmesi ve anlaması kolay benzersiz bir öğretim yaklaşımı geliştirmiştir. Excel konusundaki uzman bilgisi, dünya çapında binlerce öğrencinin ve profesyonelin becerilerini geliştirmesine ve kariyerlerinde başarılı olmasına yardımcı olmuştur. Hugh, blogu aracılığıyla bilgisini dünyayla paylaşıyor, bireylerin ve işletmelerin tam potansiyellerine ulaşmalarına yardımcı olmak için ücretsiz Excel eğitimleri ve çevrimiçi eğitimler sunuyor.