在Excel中创建一个按钮,用于过滤列中的特定文本

时间:2016-08-11 13:40:46

标签: excel excel-vba excel-formula excel-2016 vba

我正在尝试在Excel中创建一个过滤列E的按钮。列E被命名为Category(现场,电子邮件,电话)。我想创建三个按钮,一个用于现场,一个用于电子邮件,另一个用于电话。

例如,如果我点击On-site,它应该显示所有现场问题,其他两个按钮也是如此。

Sub Button1_Click() 
    Range("E:E").AutoFilter Field:=1, Criteria1:="phone" 
End Sub

使用此代码,我只能看到有电话的记录,而不是现场和电话的记录。

此外,它没有向我显示所有在手机前分类的问题。如果有20个问题,则只过滤10个。

谢谢!

1 个答案:

答案 0 :(得分:0)

这可能会有所帮助。您可以使用此格式写出三个宏,根据要过滤的内容更改每个宏中的“条件”变量。这将包括具有多个条目的单元格。然后,您可以插入三个按钮(tutorial here),每个按钮链接到自己的宏。确保更改每个宏的名称!

Sub ManualFilter()

Dim criteria As String

'What to look for
criteria = "Email"

'Where to look (Column E)
Dim myRange As Range
Set myRange = Range("E2", Cells(Rows.Count, "E").End(xlUp))

Dim myCell As Range

'Compare with criteria
For Each myCell In myRange
    'if it matches:
    If InStr(1, myCell.Value, criteria) <> 0 Then
        myCell.EntireRow.Hidden = False
    Else
        'if it doesn't match:
        myCell.EntireRow.Hidden = True
    End If
Next myCell

End Sub