2013-04-07 68 views
0

请帮助我,我想要做的是填充单元格N2:N1041与数字0和2.我想总共100个单元格(填充随机单元格) N填充“0”,剩余的940个单元填充“2”。换句话说,我希望范围的9.6%(N2:N1041)用“0”填充,其余用“2”填充。使用vba填充两个数字的单元格

非常感谢你提前。

+0

您有没有机会尝试我建议的解决方案? – 2013-04-08 00:16:35

回答

2

你在控制Do循环时是一个相当简单的练习。

首先,在此范围内将所有单元格值设置为“2”。

然后,使用RandBetween函数,选择该范围内的随机单元格以设置为“0”值。添加一个检查以确保不会用0覆盖0,然后添加一个计数器,以便控制何时退出循环。

Sub TestMacro() 
Dim rng As Range 
Dim count0 As Integer 
Dim randCell As Range 

Set rng = Range("A2:A1041") 

rng.Value = "2" 'Set all cells = 2.' 

Do 

    Set randCell = rng.Cells(Application.WorksheetFunction.RandBetween(1, 1040)) 
    'make sure we're not overwriting another 0-value' 
    If Not randCell.Value = 0 Then 
     randCell.Value = 0 
     'increment the counter variable' 
     count0 = Application.WorksheetFunction.CountIf(rng, "0") 
    End If 
Loop While count0 < 100 'exit the loop once 100 cells have been changed to 0.' 


End Sub 
相关问题