VBA,工作表,如何随机抽取一列数据中的一个单元格的数据?

如题所述

第1个回答  2014-04-22
如果你的列是确定的,只是要这一列的一个单元格,可使用随机数得到:
Randomize
a=int(Rnd(1)*500)'假设你这一列有500个数据
第2个回答  2014-04-22
假定随机抽取B列一个单元格数据填入C1单元格,代码如下:

Dim Ra As Range
Set Ra = Range([B1], Range("B" & Cells.Rows.Count).End(3))
[C1] = Ra(Int(Rnd() * Ra.Count + 1))追问

如果是被选择的任意列呢?

追答

假定随机抽取B列一个单元格数据填入C1单元格,代码如下:

Dim Ra As Range
Set Ra = Range([B1], Range("B" & Cells.Rows.Count).End(3))
[C1] = Ra(Int(Rnd() * Ra.Count + 1))

手机编辑不方便
将第二句引号中的B改为其他列名即可

本回答被提问者和网友采纳
第3个回答  2014-04-22
假设你的数据是在C列,用msgbox 显示的是随机抽取的某一个单元格的数据。
Sub text()
Dim i As Long
Dim a As Long
Dim s
a = Range("C" & Cells.Rows.Count).End(xlUp).Row
i = WorksheetFunction.RandBetween(1, a)
s = Cells(i, "c")
MsgBox s
End Sub
相似回答