需在 D1 產生 1-5 隨機數,但不可與 A1、B1 固定值重複?內建 RANDBETWEEN 易重複,VBA 可精確控制。
Public Sub btsj()
Dim sjd As Range
Set sjd = Range("D1")
line1:
sjd.ClearContents
Randomize
sjd = Int(Rnd * 5 + 1) ' 產生 1-5 隨機整數
If sjd = Range("A1") Or sjd = Range("B1") Then
GoTo line1 ' 重複則重跑
End If
End Sub
btsj 執行,或設定快捷鍵(如 Ctrl+S)。Int(Rnd * N + 1) 調整範圍(1 到 N)。Or sjd = Range("C1") 排除更多儲存格。注意:VBA 區分大小寫,引號需為半形,錯誤時善用「編譯」→「Debug」除錯。