我只是想在用户选择的范围内随机选择一行。但是,有时程序会选择特定范围之外的随机行。请看下面的代码摘录:
Dim PopulationSelect As Range
Set PopulationSelect = Application.InputBox("Select range of cells in the population", Type:=8)
RandSample = Int(PopulationSelect.Rows.Count * Rnd +1)
Rows.(RandSample).EntireRow.Select
有人知道这是为什么吗,以及如何修复它?
提前谢谢你。
发布于 2014-08-09 05:20:32
这是因为你的随机样本是从1到行数,而你的select函数在整个工作表上工作。
因此,如果populationSelect是A50:A51,那么您的rand样本将是1或2,它将选择行1或2
试一试
Sub test()
Dim PopulationSelect As Range
Set PopulationSelect = Application.InputBox("Select range of cells in the population", Type:=8)
RandSample = Int(PopulationSelect.Rows.Count * Rnd + 1)
PopulationSelect.Rows(RandSample).EntireRow.Select
End Sub
发布于 2014-08-09 05:22:33
考虑一下:
Sub qwerty()
Dim PopulationSelect As Range
Set PopulationSelect = Application.InputBox("Select range of cells in the population", Type:=8)
Dim nLastRow As Long
Dim nFirstRow As Long
Set r = PopulationSelect
nLastRow = r.Rows.Count + r.Row - 1
nFirstRow = r.Row
n = Application.WorksheetFunction.RandBetween(nFirstRow, nLastRow)
Cells(n, 1).EntireRow.Select
End Sub
https://stackoverflow.com/questions/25212330
复制相似问题