VBA根据其他单元格随机数填充单元格

我正在使用Excel 2013,我需要用随机数填充单元格的范围。 确切地说,范围(B1:B4)按数字填充,以便在前一列中的单元格的值,我的意思是在范围(A1:A4)。 如果存在这种情况,我真的不知道如何填写使用VBA,否则很简单。

这里是一个细胞的地方

# | A | B | ---------------------- 1 | Yes | 1 | ---------------------- 2 | No | 2 | ---------------------- 3 | Maybe | 3 | ---------------------- 4 | No | 2 | ---------------------- 

如果你所需要做的就是用vba设置它 ,这应该给你值1,2或3:

 Range("B1:B4").Formula = "=RANDBETWEEN(1,3)" 

如果您只需要一个Excel公式 ,则可以随时将=RANDBETWEEN(1,3)粘贴到公式栏中。

如果您尝试基于列A定义列B值,请使用:

 Range("B1:B4").Formula = "=IF(A1 = ""Yes"", 1, IF(""No"", 2, If(""Maybe"", 3, ""ERROR"")))" 

如果这两者都不是你想要的,你将不得不澄清更好。

如果您只需要随机数字,则不需要VBA。 只要设置你的单元格公式等于:

 "=RANDBETWEEN(1,3)" 

但是,每次计算工作表时,您的随机数字都会更改。 为了避免这种情况,您可以定义下面的sub,并将其与例如一个操作button相关联:

 Sub makeRand() Dim targetRange As Range Dim xlCell As Range Dim upperBound As Integer Dim lowerBound As Integer Set targetRange = Range("B1:B4") upperBound = 3 lowerBound = 1 Randomize For Each xlCell In targetRange xlCell.Value = Int((upperBound - lowerBound + 1) * Rnd + lowerBound) Next xlCell End Sub