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