Excel VBA Rnd实际上并不随意

我目前有一个macros,当我点击一个button,它“随机”给我一个数字在msgbox:

dim number as double number= Int(8 * Rnd + 1) - 1 MsgBox number 

问题是,这些数字实际上并没有随机分配。 例如:如果我启动macros,点击button两次,让我说我得到数字5和2.现在,如果我closuresmacros并再次打开它,并单击button两次,我得到相同的两个数字5和2。

现在我知道,在VB.net有一种方法,实际上它每次吐出随机数字,而不重复“序列”,但它已经过了几年,因为我碰到了VB.NET,所以我不记得,我也会不知道如何在excel vba中使用它。

您需要初始化随机数函数

 Sub test() Dim number As Double Randomize number = Int(8 * Rnd + 1) - 1 MsgBox number End Sub