<p><font size="4">下面这一段是想用数组编写,但写到判断数组中是否包含重复数据时(<font color="#ee1196">红色字体部分</font>),就不会写了,昨天在网上搜索了大半天 ,也没找到有关的代码,大家帮忙看看!</font></p><p><br/> rivate Sub 确定1_Click() ''数组法<br/> On Error Resume Next<br/> Dim MinNum%, MaxNum%, i%, j%, X%, Y%<br/> Dim arr</p><p> X = Selection.Rows.Count<br/> Y = Selection.Columns.Count<br/> ReDim arr(1 To X, 1 To Y)<br/> Application.ScreenUpdating = False<br/> MinNum = 最小值.Value<br/> MaxNum = 最大值.Value<br/> If 是否可重复.Value = False And MaxNum - MinNum < Selection.Count Then<br/> MsgBox "数据范围太小!", 0 + 16, "警告"<br/> 最小值.SetFocus<br/> 最小值.Value = ""<br/> 最大值.Value = ""<br/> Else<br/> For j = 1 To Y<br/> For i = 1 To X<br/> If 是否可重复.Value = True Then<br/> arr(i, j) = Int(Rnd() * (MaxNum - MinNum) + MinNum) 'RAND()*(b-a)+a<br/> Else<br/> <font color="#f70968">'''********************************************************************************<br/> '不知道这一段该该如何查找判断数组中是否已包含生成的数据<br/> '<br/> arr(i, j) = Int(Rnd() * (MaxNum - MinNum) + MinNum) 'RAND()*(b-a)+a<br/> '''********************************************************************************<br/></font> End If<br/> Next i<br/> Next j<br/> Cells(Selection.Row, Selection.Column).Resize(X, Y) = arr<br/> MsgBox "已生成 " & Selection.Count & "个" & " 随机数!", 0 + 64, "你好"<br/> Unload Me<br/> End If<br/> Application.ScreenUpdating = True<br/>End Sub</p><p></p>
[此贴子已经被作者于2008-7-26 9:14:53编辑过] |