VBA – Excel随机公式没有使用相同的数字随后
我创build了下面的代码,它在技术上是应该的。 它把所有使用的行的列C中从1到3的随机数从84开始减less。 由于它只限于3个值,所以我经常会连续得到相同的数字。 有没有办法来防止这种情况发生? 所以如果C84最终成为“2”,C85必须是“1”还是“3”?
Sub RandomNumbers() Application.ScreenUpdating = False Range("C84") = "=RANDBETWEEN(1,3)" Dim LastRow As Integer LastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row Range("C84:C" & LastRow) = "=RANDBETWEEN(1,3)" End Sub
假设我们要随机生成1到3之间的一列值,而没有连续的重复。
没有VBA:
在A1中input:
=RANDBETWEEN(1,3)
在A2中input:
=IF(A1=1,RANDBETWEEN(2,3),IF(A1=3,RANDBETWEEN(1,2),IF(RAND()<0.5,1,3)))
并抄下来:
如果您确实需要VBA,则可以使用VBA粘贴公式。
下面的循环如何?
Sub RandomNumbers() Dim LastRow As Long LastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row For i = 84 To LastRow ActiveSheet.Range("C" & i).Value = Application.WorksheetFunction.RandBetween(1, 3) Do Until ActiveSheet.Range("C" & i).Value <> ActiveSheet.Range("C" & i - 1).Value ActiveSheet.Range("C" & i).Value = Application.WorksheetFunction.RandBetween(1, 3) Loop Next i End Sub