|
我看你在表格中已经设置公式了。
- Sub test()
- Dim i&, k%, r&, tmp&, d, arr
- Set d = CreateObject("Scripting.Dictionary")
- With Sheets("Sheet1")
- r = .Cells(.Rows.Count, "f").End(xlUp).Row '获取F列最后一个非空单元格的行号
- If r < 31 Then
- MsgBox "金额列数据不足30!"
- Exit Sub
- End If
- .Range(.Cells(2, 7), .Cells(r, 8)).ClearContents '清除内容
- With .Range(.Cells(2, 6), .Cells(r, 8))
- arr = .Value 'arr获取空内容
- Do While (k < 30) '生成30个数
- tmp = Int(1 + (UBound(arr) - 1 + 1) * Rnd()) '生成1-UBound(arr)之间的随机整数
- If Not d.Exists(tmp) Then '字典判断,不存在则添加到数组中
- d(tmp) = tmp '加入字典
- arr(tmp, 2) = 10 '数组中相应位置的内容设置为10
- k = k + 1
- End If
- Loop
- For i = 1 To UBound(arr)
- arr(i, 3) = arr(i, 1) + arr(i, 2)
- Next
- .Value = arr '将数组内容写入单元格
- End With
- End With
- End Sub
复制代码 |
评分
-
1
查看全部评分
-
|