Excel的search引擎使用VBA和filter?

我正在使用下面的VBA代码来根据我的单元格C5中的值在Excel中筛选我的行

Sub DateFilter() 'hide dialogs Application.ScreenUpdating = False 'filter for records that have June 11, 2012 in column 3 ActiveSheet.Range("C10:AS30").AutoFilter Field:=1, Criteria1:="*" & ActiveSheet.Range("C5").Value & "*" Application.ScreenUpdating = True End Sub 

我的excel列看起来像:

 ABC Gold XXX Manchester Silver TTT London Black ZZZ Scotland White WWW Wales 

所以如果我在单元格C5中键入单词“Gold”并运行macros,我的行将被过滤,只有下面的内容会显示:

 Gold XXX Manchester 

但是,现在我希望能够通过将来自列a,b或c的值放入我的单元格c5中并过滤行来过滤我的行。

所以,如果我在单元格c5中input字母“TTT”,这将过滤我的行像这样:

 Silver TTT London 

如果我input威尔士的单元格c5它过滤我的行像:

 White WWW Wales 

我想要做的另一件事是能够根据多个search条件过滤我的行,所以如果我把我的单元格c5列a,b和c的值的组合如下所示:

 White WWW Wales 

然后,我结束了以下过滤结果:

 White WWW Wales 

请有人能告诉我如何能够做到这一点? 提前致谢

为了过滤“任何”列,你可以像这样组合一个查找结果和filter:

 Sub DateFilter() Dim nRow As Range Dim toSearch As Range 'hide dialogs Application.ScreenUpdating = False 'filter for records that have June 11, 2012 in column 3 Set toSearch = Range("A1:C4") 'detect row that matches criteria: Set nRow = toSearch.Find(ActiveSheet.Range("C5").Value) If Not (nRow Is Nothing) Then ActiveSheet.Range("C1:A4").AutoFilter Field:=nRow.Column, Criteria1:="*" & nRow.Value & "*" End If Application.ScreenUpdating = True End Sub 

我试着用你的值粘贴在A1到C4,C5作为我的search文本单元格。 你将不得不调整这些值,但除此之外,你应该没问题。

对于你的最后一个查询,“白色的威尔士”,我会build议去与omegastripesbuild议一个额外的连接单元格列AA左右的地方。