VBA在选择范围内选择随机行

标签 vba excel user-input

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

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 到行数,并且您的选择函数在整个工作表上起作用。

因此,如果 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

关于VBA在选择范围内选择随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25212330/

相关文章:

excel - VBA - 识别空字符串

php - 如何处理混合使用 HTML 和标点符号的用户输入?

vba - 在循环中使用 From Web Query

Excel VBA 循环行直到空单元格

Python Excel 运行宏到 xlsx 文件

c# - 获取 Excel 工作表名称到 C#

c++:读取()从服务器读取响应时挂起

user-input - 如何让输入框点击展开

vba - 在 VBA 中使用 IFERROR

sql - 使用 VBA 处理 Access 数据库内的外部 Access 数据库?