|
本帖最后由 Crystalm 于 2011-12-26 00:33 编辑
我有两个TextBox(TextBox1和TextBox2), TextBox1中有多行数据,如何用VBA随机的抽取N(比如N=3)行不相同的数据到TextBox2中?
- Private Sub 提取_Click()
- Dim Arr, d As New Dictionary, i&, K&, j&, dk As New Dictionary
- Arr = Split(TextBox1.Text, Chr(10))
- For i = 0 To UBound(Arr)
- d(Arr(i)) = ""
- Next
- If d.Count > 0 Then
- K = Application.InputBox("请输入随机获取的记录数", "确认", Application.RoundUp(UBound(Arr) * 0.5 + 0.5, 0), , , , , 1)
- If K > 0 And K < UBound(Arr) + 2 Then
- Do
- j = Int(Rnd() * d.Count)
- dk.Add d.Keys(j), ""
- d.Remove d.Keys(j)
- Loop Until dk.Count = K
- TextBox2.Text = Join(dk.Keys, Chr(10))
- Else: MsgBox "请确认K的值,范围在1-" & UBound(Arr)
- End If
- End If
- Set d = Nothing
- Set dk = Nothing
- End Sub
复制代码
随机抽取数据.rar
(23.83 KB, 下载次数: 93)
|
|