VBA在select范围内select随机行

我只是试图在用户select的范围内select一个随机的行。 但是,有时程序会在特定范围之外select一个随机行。 请参阅下面的代码摘录:

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 

有谁知道这是为什么,以及如何解决它?

先谢谢你。

这是因为您的随机样本从1行到行的数量,您的selectfunction正在整个工作表上工作。

所以如果populationSelect是A50:A51你的兰德样品将是1或2,它会select行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 

考虑:

 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