VBA发现两个人之间的任何价值

我试图在Excel中完成一个小的VBA项目,目的是让我比使用内置的filter/search选项更容易过滤数据。 基本上,我有一个与数据头相关的用户input的表单。 对于search的值,我有一个公差带的input,例如input是:标题名称; 名义search值; 公差。 然后,它将查找所有容差范围内的数据行。

下面是我希望循环遍历并将每行复制到新表的代码。 我想将范围“fc”设置为等于在ssMin和ssMax之间find的第一个单元格。 我最好使用If块吗?

Private Function searchCells(ifc) Dim ss As Integer Dim fc As Range Dim ssMax As Integer Dim ssMin As Integer ss = lstboxChannelList.List(ifc, 1) ssMax = ss + lstboxChannelList.List(ifc, 2) ssMin = ss - lstboxChannelList.List(ifc, 2) Set fc = Cells.Find(What:=(ssMin <= ssMax), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) fc.Select End Function 

再次感谢评论,我今天有一个游戏,但无法得到先进的filter做我想要的东西。 这个小小的陈述,使我想知道为什么我首先打扰了.find。 “fr”是在前一个函数中select的范围,我不确定是否将它指定为范围,但是我有点困惑,我是如何通过的从函数回到子函数然后回到另一个函数,但是这个方法似乎工作。 再次感谢那些评论!

 Private Function searchCells(ifc) Dim ss As Integer Dim fc As Range Dim ssMax As Integer Dim ssMin As Integer Dim cell As Range Dim fr As Range ss = lstboxChannelList.List(ifc, 1) ssMax = ss + lstboxChannelList.List(ifc, 2) ssMin = ss - lstboxChannelList.List(ifc, 2) Set fr = Selection For Each cell In fr If cell.Value < ssMax And cell.Value > ssMin Then cell.Select 'More code to come here 'MsgBox ("found one!") End If Next cell End Function