Muh*_*ana 2 random excel vba excel-vba
所以这是我正在使用的以下VBA代码.它工作得很好,但我需要扩大范围以检查其他单元格,但其中一些单元格可能包含空单元格,我不想选择那些单元格.
有没有办法绕过那些空单元格?
Dim RNG1 As Range
Set RNG1 = Range("H1:H30")
Dim randomCell1 As Long
randomCell1 = Int(Rnd * RNG1.Cells.Count) + 1
With RNG1.Cells(randomCell1)
.Select
'will do something else here, like copy the cell, fill the cell with a color, etc
End With
Run Code Online (Sandbox Code Playgroud)
这应该只选择非空单元格:
Sub marine()
Dim RNG1 As Range, r As Range, c As Collection
Set c = New Collection
Set RNG1 = Range("H1:H30")
For Each r In RNG1
If r.Value <> "" Then
c.Add r
End If
Next r
Dim N As Long
N = Application.WorksheetFunction.RandBetween(1, c.Count)
Set rselect = c.Item(N)
rselect.Select
End Sub
Run Code Online (Sandbox Code Playgroud)
注意:
这是一般技术的一个例子.要从范围的子集中进行随机选择,请收集子集并从集合中进行选择.
| 归档时间: |
|
| 查看次数: |
5640 次 |
| 最近记录: |