Vba 从范围变量调用筛选行
我用VBA在Excel中过滤我的表格,并将其保存在范围变量中。例如:我有1000个字段,过滤后只有200个。我将数据保存在一个范围内,并随机选择该范围内的一个数字 在这之后,我想在筛选行更改信息。然而,我不知道如何做到这一点。例如,如果我使用<代码>单元格(行,10)< /代码>,VBA考虑所有行和打印输出范围。 如何仅按编号或地址更改过滤后的单元格Vba 从范围变量调用筛选行,vba,excel,Vba,Excel,我用VBA在Excel中过滤我的表格,并将其保存在范围变量中。例如:我有1000个字段,过滤后只有200个。我将数据保存在一个范围内,并随机选择该范围内的一个数字 在这之后,我想在筛选行更改信息。然而,我不知道如何做到这一点。例如,如果我使用单元格(行,10)< /代码>,VBA考虑所有行和打印输出范围。 如何仅按编号或地址更改过滤后的单元格 Dim Rng As Range ActiveSheet.Range("A1:AE" & tlast_row).AutoFilter Field:
Dim Rng As Range
ActiveSheet.Range("A1:AE" & tlast_row).AutoFilter Field:=1, Criteria1:="teste"
Set Rng= Range("A2", Range("A2").End(xlDown)).Cells.SpecialCells(xlCellTypeVisible)
tSelCell = WorksheetFunction.RandBetween(1, RngC.Count)
Rng.SpecialCells(xlCellTypeVisible).Cells(tSelCell, 3) = "TEST" '< Here is the problem
Dim Rng As范围
ActiveSheet.Range(“A1:AE”和tlast_行)。自动筛选字段:=1,标准1:=“teste”
设置Rng=Range(“A2”,Range(“A2”).End(xlDown)).Cells.SpecialCells(xlCellTypeVisible)
tSelCell=WorksheetFunction.randbween(1,RngC.Count)
Rng.SpecialCells(xlCellTypeVisible).Cells(tSelCell,3)=“TEST”<问题出在这里
假设我们有如下数据:
我们过滤“快乐”:
可见单元格形成一个不相交的区域。要从不相交的区域中随机选取,我们首先创建一个可见单元格地址数组,然后从该数组中随机选取:
Option Base 1
Sub PickARandomVisibleRow()
Dim rDisjoint As Range, ary() As Variant, NrD As Long
Dim tSelCell As Long
Set rDisjoint = Range("A2:A24").Cells.SpecialCells(xlCellTypeVisible)
NrD = rDisjoint.Count
ReDim ary(1)
i = 1
For Each r In rDisjoint
If i = 1 Then
Else
ReDim Preserve ary(i)
End If
ary(i) = r.Address
i = i + 1
Next r
msg = ""
For i = LBound(ary) To UBound(ary)
msg = msg & vbCrLf & i & vbTab & ary(i)
Next i
MsgBox msg
tSelCell = Application.WorksheetFunction.RandBetween(1, UBound(ary))
msg = "Random Pick item: " & tSelCell & " which is cell: " & ary(tSelCell)
MsgBox msg
End Sub
RngC必须在RngC之前设置。可以使用计数。RngC是相同的Rng-抱歉,错了。完美的Gary-非常感谢,这将对我帮助很大。祝你周末愉快@Arildo感谢您的反馈!