• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Excel VBA 產生隨機亂數教學與範例

介紹如在 Excel VBA 中使用 Rnd 函數產生隨出的亂數。

Rnd 函數

VBA 的 Rnd 函數可以產生介於 0 到 1 的隨機亂數(大於或等於 0 且小於 1)。

' 產生 0 <= x < 1 的亂數
RandNum = Rnd()
MsgBox ("亂數:" & RandNum)
產生介於 0 到 1 之間的隨機亂數
產生介於 0 到 1 之間的隨機亂數
隨機亂數
隨機亂數

初始化隨機亂數

在實務上為了讓亂數接近隨機,在使用 Rnd 產生亂數之前,可先呼叫 Randomize 函數,以目前時間來設定亂數種子,初始化亂數,確保每次執行程式都會產生不同的亂數:

' 以時間初始化亂數
Randomize()

' 產生亂數
RandNum = Rnd()

產生隨機整數亂數

若要產生隨機的整數,可以用 Rnd 產生浮點數之後,再經過簡單的轉換即可。

' 設定整數亂數範圍
Min = 3
Max = 9

' 產生 Min <= x <= Max 的亂數
RandNum = Int((Max - Min + 1) * Rnd() + Min)
MsgBox ("亂數:" & RandNum)
產生隨機整數亂數
產生隨機整數亂數
產生隨機整數亂數
產生隨機整數亂數

產生隨機字串

若需要產生隨機的文字,可以自行定義一個產生隨機字串的函數:

' 產生長度為 n 的隨機字串
Function RandString(n As Long) As String
  Dim i As Long, j As Long, m As Long, s As String, pool As String

  ' 設定可用的字元
  pool = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

  m = Len(pool)
  For i = 1 To n
    j = 1 + Int(m * Rnd())
    s = s & Mid(pool, j, 1)
  Next i
  RandString = s
End Function

在這個自訂函數中,pool 這個變數是用來設定可用的字元,可以自由增加或減少裡面的字元。接著使用這個自訂的函數即可產生任意長度的隨機字串:

Sub Run()
  ' 產生長度為 20 的隨機字串
  RandStr = RandString(20)
  MsgBox ("隨機字串:" & RandStr)
End Sub
產生隨機字串
產生隨機字串
產生隨機字串
產生隨機字串

分類:Excel 標籤:VBA

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide