VBA willekeurig

Randomize-instructie in VBA

VBA Randomize- instructie is een eenvoudige one-liner-instructie die we toevoegen voordat we de RND-functie toepassen. Telkens wanneer een werkmap opnieuw wordt geopend, geeft de Randomize-instructie een nieuw seed-nummer aan de RND-functie, afhankelijk van de systeemtijd van de computer.

Voordat ik het heb over de Randomize-instructie, wil ik je kennis laten maken met een eenvoudige RND-functie met VBA.

Als een werkbladfunctie "RAND", zal in VBA ook "RND" willekeurige getallen genereren die groter zijn dan 0 maar kleiner dan 1.

Bekijk nu de syntaxis van de "RND" -functie.

[Getal]: We kunnen het argument op drie manieren doorgeven.

  • Als we het nummer doorgeven als <0, blijft het elke keer hetzelfde willekeurige nummer genereren.
  • Als we het nummer doorgeven als 0, herhaalt het het meest recente nummer dat het heeft gegeven.
  • Als we het getal> 0 passeren, krijgt u steeds verschillende willekeurige getallen, dwz het volgende willekeurige getal in de reeks.

Voorbeeld

Kijk voor een voorbeeld naar de onderstaande code.

Code:

 Sub RND_Example () Debug.Print Rnd End Sub 

Wanneer ik de code in het onmiddellijke venster uitvoer, kan ik het onderstaande nummer zien.

Evenzo, wanneer ik deze code nog 3 keer uitvoer, kan ik de onderstaande cijfers zien.

Nu zal ik de werkmap sluiten en opnieuw openen.

Nu ga ik terug naar het visuele basisbewerkingsvenster.

Nu is het directe raam leeg en schoon.

Nu zal ik opnieuw de code vier keer uitvoeren en kijken wat de cijfers zijn die we in het onmiddellijke venster zullen krijgen.

We hebben dezelfde nummers als hierboven.

Dit ziet er niet uit als een willekeurig nummer, want elke keer dat we het bestand opnieuw openen, krijgen we de neiging om dezelfde nummers vanaf nul te krijgen.

Dus, hoe genereren we willekeurige getallen, ongeacht of de werkmap is heropend of niet?

We moeten de instructie "Randomize" gebruiken.

Hoe VBA Randomize Statement te gebruiken?

U kunt deze VBA Randomize Excel-sjabloon hier downloaden - VBA Randomize Excel-sjabloon

Voorbeeld 1

Om willekeurige getallen te krijgen, hoeven we alleen maar de eenvoudige one-liner "Randomize" toe te voegen voor de RND-functie.

Code:

 Sub Randomize_1 () Randomize Debug.Print Rnd End Sub 

Nu zal ik de code 4 keer uitvoeren en kijken wat ik krijg.

Het heeft de bovenstaande nummers gegenereerd in mijn lokale venster.

Nu zal ik het bestand sluiten en het bestand opnieuw openen.

Zoals gewoonlijk beginnen we met een schone lei in het visuele basisvenster.

Nu zal ik de code opnieuw uitvoeren en kijken welke nummers we deze keer krijgen.

Wauw!!! We hebben deze keer verschillende nummers.

Omdat we de instructie Randomize hebben toegevoegd voor de RND-functie, krijgen we elke keer dat we het bestand opnieuw openen verschillende willekeurige getallen.

Dit ziet eruit als een willekeurig getal, nietwaar ???

Voorbeeld # 2

Willekeurige getallen groter dan één

Zoals we hebben gezien, kan de functie "RND" alleen getallen genereren van 0 tot 1. Maar om getallen te genereren die groter zijn dan één willekeurig getal, moeten we "RANDOM BETWEEN" gebruiken, dat beschikbaar is met de werkbladfunctieklasse.

Om willekeurige getallen groter dan één te genereren, moeten we de onderstaande code gebruiken.

Code:

 Sub Randomize_2 () Randomize Debug.Print Rnd * 100 End Sub 

Nu zal ik de code uitvoeren en kijken wat we krijgen.

Op deze manier kunnen we de instructie "Randomize" in VBA gebruiken om elke keer dat we het Excel-bestand opnieuw openen, willekeurige getallen te genereren.