vba查找具有多个范围值的集合
我正在寻找一种方法来生成一个具有两个给定范围值的集合 例如,在我的代码中,我有以下内容:vba查找具有多个范围值的集合,vba,excel,find,Vba,Excel,Find,我正在寻找一种方法来生成一个具有两个给定范围值的集合 例如,在我的代码中,我有以下内容: Set myList = FindAll(columnValue, Sheet2.Range("ColumnName")) Set advisorFound = myList.Offset(, -2) 我想做的是能够使用两个范围值查找DALL,例如: Set myList = FindAll(columnValue, Sheet2.Range("ColumnName"), anotherColumnVal
Set myList = FindAll(columnValue, Sheet2.Range("ColumnName"))
Set advisorFound = myList.Offset(, -2)
我想做的是能够使用两个范围值查找DALL,例如:
Set myList = FindAll(columnValue, Sheet2.Range("ColumnName"), anotherColumnValue, Sheet2.Range("anotherColumnName"))
但是,我知道FindAll函数不是我想要的,因为它最多只需要两个参数,如果我使用它,代码的其余部分也没有意义(偏移量不起作用)
我的最终目标是:获取一组包含这两个范围限制的行,我只想访问此集合中另一列中具有最小值的行(与找到的其他行相比)
我已经查阅了文档(),但似乎找不到我要查找的内容。提前感谢您的帮助:)您可以使用
AutoFilter()
:
使用工作表(“Sheet2”)'为什么不使用过滤器,然后将可见的内容复制到另一张工作表上。然后你就可以在数据集中搜索你的最小值。@Scott Craner:哦,这是一个伟大而简单的想法:)我会试试的!我想我把问题复杂化了。非常感谢
With Worksheets("Sheet2") '<--| reference your data sheet
With .Range(.Range("ColumnName"), .Range("anotherColumnName")) '<--| reference its range ranging between two named ranges
.AutoFilter Field:=.Parent.Range("ColumnName").Column - .Columns(1).Column + 1, Criteria1:=columnValue '<--| 1st filter on first named range
.AutoFilter Field:=.Parent.Range("anotherColumnName").Column - .Columns(1).Column + 1, Criteria1:=anothercolumnValue '<--| 2nd filter on 2nd named range
If Application.WorksheetFunction.Subtotal(103, .Resize(, 1)) > 1 Then '<--| if any filtered cell then
With Intersect(.Resize(.Rows.count - 1).Offset(1).SpecialCells(xlCellTypeVisible).EntireRow, .Columns(1).Offset(, -2)) '<--| reference cells two columns to the left of the lower column index named range filtered ones
Set myList = Intersect(.Find(what:=WorksheetFunction.min(.Cells), lookat:=xlWhole, LookIn:=xlValues).EntireRow, .Parent.UsedRange) '<-- set the row "used" range with the minimum value in the referenced cells
End With
End If
End With
.AutoFilterMode = False
End With