2014-12-18 85 views
0

我正在使用Excel 2013,我需要用隨機數填充單元格的範圍。確切地說,範圍(B1:B4)用數字填充以便在前一列中的單元格的值,我的意思是在範圍(A1:A4)中。如果存在這種情況,我真的不知道如何填寫使用VBA,否則很簡單。VBA用隨機數取決於其他單元的填充單元格

這裏是細胞的scetch

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

我不清楚你需要做什麼。 –

回答

1

如果你需要做的就是集這與VBA,這應該給你值1,2,或3:

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

如果您只需要Excel公式,您總是可以將=RANDBETWEEN(1,3)粘貼到公式欄中。

如果你想定義一個值,只要使用基於列的列B值:

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

如果沒有這些都是你想要什麼,你將不得不澄清更好。

1

如果您只需要隨機數字,則不需要VBA。只需將您的單元格公式設置爲:

"=RANDBETWEEN(1,3)" 

但是,每次計算工作表時,您的隨機數都會更改。爲了避免這種情況,您可以定義下面的子並將其與其關聯,例如,使用動作按鈕:

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 
相關問題