我正在使用以下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列看起来像:
A B C
Gold XXX Manchester
Silver TTT London
Black ZZZ Scotland
White WWW Wales
因此,如果我在单元格C5中输入单词'Gold'并运行宏,我的行将被过滤,只会显示以下内容:
Gold XXX Manchester
但是,现在我希望能够通过将a,b或c列中的值放入我的单元格c5并过滤行来过滤我的行。
因此,如果我在单元格c5中输入字母'TTT',这将过滤我的行:
Silver TTT London
如果我输入威尔士进入单元格c5它会过滤我的行:
White WWW Wales
我想要做的另一件事是能够根据多个搜索条件过滤我的行,所以如果我在我的单元格c5中放置a,b和c列的值的组合,如下所示:
White WWW Wales
然后我最终得到以下过滤结果:
White WWW Wales
有人可以告诉我我将如何做到这一点?提前致谢
答案 0 :(得分:0)
为了过滤“any”列,您可以像这样组合查找结果和过滤器:
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作为搜索文本单元格。你必须调整这些值,但除此之外你应该没事。
对于您的上一次查询,“White WWW Wales”我建议在omegastripes建议在AA列左右的某个地方添加一个附加的连接单元格。