2016-08-11 45 views
-2

我想在过滤列E的excel中创建一个按钮。列E被命名为Category(现场,电子邮件,电话)。我想在现场创建三个按钮,一个用于电子邮件,另一个用于电话。在excel中创建一个按钮来过滤列中的特定文本

例如,如果我点击现场,它应该向我显示所有现场问题,其他两个按钮也一样。

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

通过此代码,我只能看到带有电话的记录,而不是现场和电话中的记录。

此外,它不会向我显示在电话预先分类下的所有问题。如果有20个问题,它只能过滤10个。

谢谢!

+2

那么你的问题是什么?请知道“我该怎么做?”或“我从哪里开始?”这个论坛太宽泛了。此论坛适用于那些现有代码无法获得帮助以克服上述代码的特定问题的人。 –

+0

不确定你在找什么,但也许切片机可能有帮助?它根据标准过滤数据。不幸的是,它只适用于数据透视表。查看[Chandoo](http://chandoo.org/wp/2015/06/24/introduction-to-slicers/)和[Microsoft](https://msdn.microsoft.com/en-us/library/ gg399135(v = sql.110).aspx)来了解它们。 – PartyHatPanda

+0

子的button1_Click() 范围(“E:E”)自动筛选字段:= 1,标准1:=“预电话” 结束子 这是我编码的按钮中的一个,但一点也没有似乎没有用。 – sjb12

回答

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 
相关问题