Vba 自动筛选后获取可见范围
我正在尝试将筛选的行选择到范围变量Vba 自动筛选后获取可见范围,vba,excel,Vba,Excel,我正在尝试将筛选的行选择到范围变量xRange。我需要在那个范围内做些手术。筛选之前有10000多行。过滤后,它是5000行。所以在过滤之后,我尝试了这个方法来获得过滤范围,它并没有像我期望的那样工作 With Sheets("FullInvoice").Range("A1:N" & lRow) .AutoFilter .AutoFilter Field:=6, Criteria1:=">=" & fD, Criteria2:="<=" & l
xRange
。我需要在那个范围内做些手术。筛选之前有10000多行。过滤后,它是5000行。所以在过滤之后,我尝试了这个方法来获得过滤范围,它并没有像我期望的那样工作
With Sheets("FullInvoice").Range("A1:N" & lRow)
.AutoFilter
.AutoFilter Field:=6, Criteria1:=">=" & fD, Criteria2:="<=" & lD
End With
Set xRange = Sheets("FullInvoice").Cells.SpecialCells(xlCellTypeVisible)
它返回整行的第一个单元格值。不是从筛选的行
那么如何解决这种情况呢。试试下面的代码
With Sheets("FullInvoice").Range("A1:N" & lrow)
.AutoFilter
.AutoFilter Field:=6, Criteria1:=">=" & fd, Criteria2:="<=" & ld
End With
With Sheets("FullInvoice").Range("A1").CurrentRegion
Set xRange = .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
End With
MsgBox xRange.Address
Dim s As String
s = xRange.Range("A1").Value
MsgBox s
带表单(“完整发票”)。范围(“A1:N”和lrow)
.自动过滤器
.AutoFilter字段:=6,Criteria1:=“>=”&fd,Criteria2:=”甚至比这更简单。只需将xrange
带到您的中,使用Range.Cells(x,y)
而不是Range.Range
即可获得范围内的单元格:
With Sheets("FullInvoice").Range("A1:N" & lRow)
.AutoFilter
.AutoFilter Field:=6, Criteria1:=">=" & fD, Criteria2:="<=" & lD
Set xrange = .SpecialCells(xlCellTypeVisible)
End With
MsgBox xrange.Cells(1, 1)
带表单(“完整发票”)。范围(“A1:N”和lRow)
.自动过滤器
.自动筛选字段:=6,标准1:=“>=”&fD,标准2:=”
With Sheets("FullInvoice").Range("A1:N" & lRow)
.AutoFilter
.AutoFilter Field:=6, Criteria1:=">=" & fD, Criteria2:="<=" & lD
Set xrange = .SpecialCells(xlCellTypeVisible)
End With
MsgBox xrange.Cells(1, 1)