Генеришите случајне бројеве помоћу ВБА РНД функције

Преглед садржаја

Екцел ВБА случајни бројеви

Да бисмо генерисали случајне бројеве у вба , имамо уграђену функцију која се зове РНД . Потребан је само аргумент број да би се генерисали случајни бројеви, а ово је такође опциони параметар. Створиће случајне бројеве који су већи од 0 и мањи од 1.

Ово ради потпуно исто као и екцел функција „РАНД“. Као што сам рекао у функцији радног листа „РАНД“ и у ВБА, можемо генерисати случајне бројеве који су већи од 0, али мањи од 1.

Сада погледајте синтаксу функције „РНД“.

(Број): Аргумент можемо проследити на три начина.

  • Ако број проследимо као <0, сваки пут генерише исти случајни број.
  • Ако број додамо као 0, он ће поновити најновији број који је дао.
  • Ако проследимо број> 0, он вам стално даје различите случајне бројеве, тј. Следећи случајни број у низу.

Како генерисати насумичне бројеве помоћу ВБА кода?

Пример # 1

Сада ћемо видети једноставан пример употребе функције „РНД“. Следите кораке у наставку да бисте сами написали ВБА код.

Корак 1: Прогласите променљиву као „Целобројно“ у ВБА.

Шифра:

Суб Рнд_Екампле1 () Дим К Ас Интегер Енд Суб

Корак 2: Сада доделите вредност променљивој „к“ путем функције „ РНД “.

Шифра:

Суб Рнд_Екампле1 () Дим К Ас Интегер К = Рнд () Енд Суб

Корак 3: Прикажите вредност коју враћа променљива „к“ у оквиру за поруку .

Шифра:

Суб Рнд_Екампле1 () Дим К Ас Интегер К = Рнд () МсгБок К Енд Суб

Сада покрените екцел макро и погледајте какав је резултат.

Погледајте шта се догодило.

Приказује резултат као 1 где функција „РНД“ може вратити само бројеве који су већи од нуле, али мањи од 1.

Сигурно размишљате о томе шта је овде погрешно.

Погрешна ствар је врста података коју смо доделили променљивој „к“.

Ако се осврнете на променљиву коју смо декларисали, доделили смо тип података као Интегер. Будући да смо променљиву доделили Интегер, она може приказати само целе бројеве између -32768 и 32767.

Кад год РНД врати децимални број, ВБА претвара децимални број у најближи цели број, тј. 1.

Дакле, да би формула правилно функционисала, прогласите променљиву као „ Доубле “.

„Доубле“ је тип података у ВБА који може садржати децималне вредности.

Шифра:

Суб Рнд_Екампле1 () Дим К Ас Доубле К = Рнд () МсгБок К Енд Суб

Сада код и погледајте какав је резултат.

Кликните на ок и покрените још једном и погледајте какав је резултат.

Овог пута смо добили другачији резултат. Пошто је „РНД“ у својој природи променљива функција, он репродукује различите резултате сваки пут када извршите код.

Пример # 2 - Узмите сваки случајни број сваки пут

Као што смо видели у претходном примеру е, функција „РНД“ репродукује резултат сваки пут када извршимо код. Да бисмо изнова и изнова добили исти случајни број, морамо аргумент предати као нулу.

Шифра:

Суб Рнд_Екампле2 () Дим К Ас Доубле К = Рнд (0) МсгБок К Енд Суб

Ово ће произвести исти број изнова и изнова када извршимо код.

Пример # 3 - Генерисање целог случајног броја

Такође можемо генерисати читаве бројеве користећи друге ВБА функције или друге улазне бројеве. На пример, погледајте доњи код.

Шифра:

Суб Рнд_Екампле3 () Дим К Ас Доубле К = 1 + Рнд * 100 МсгБок К Енд Суб

Овај код ће генерирати случајне цијеле бројеве с децималним зарезима сваки пут кад извршимо код.

Ако гледате целе бројеве без децималних зареза, онда можемо користити доњи код.

Шифра:

Суб Рнд_Екампле3 () Дим К Ас Доубле К = ЦИнт (1 + Рнд * 100) МсгБок К Енд Суб

Ово ће наставити да генерише целе бројеве од 1 до 100.

Занимљиви Чланци...