使用单元格值作为参考过滤单元格

时间:2015-02-21 21:47:04

标签: excel vba

我需要使用单元格值作为参考来过滤excel工作表。 现在我发现使用的是vba,所以这是我的代码

Private Sub Worksheet_Change(ByVal Target As Range)
   If (Intersect(Target, Range("f2")) Is Nothing) _
   Then
     Exit Sub
   End If

   Cells.AutoFilter Field:=2, Criteria1:=Range("f2").Value

End Sub

但每当我改变细胞f2的值时,它会隐藏所有细胞并擅长崩溃,不知何故...... 所以我需要的是: 使用单元格f2作为条件的参考,过滤范围a1:d100中的数据,以便当单元格f2中的值更改时,a1:d100仅显示条件为真的行...

字段2是产品的描述,如计算机,因此每次我在f2中写入“HP”文本时,它仅显示HP计算机...

2 个答案:

答案 0 :(得分:1)

感谢所有人,但我解决了我的问题,如果有人对此感兴趣,那么我的代码是

Private Sub Worksheet_Change(ByVal Target As Range)
   If (Intersect(Target, Range("f1")) Is Nothing) _
   Then
      Exit Sub
   End If
   Cells.AutoFilter Field:=2, Criteria1:="*" & Range("f1")
   Cells.AutoFilter Field:=2, Criteria1:="*" & Range("f1") & "*"


End Sub

答案 1 :(得分:0)

尝试以下方法:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Tbl As Range
    Set Tbl = Range("A1:D100")
    If Intersect(Range("F2"), Target) Is Nothing Then Exit Sub
    Tbl.AutoFilter Field:=2, Criteria1:=Range("F2").Value
End Sub

注意:过滤器可能会隐藏第2行。这可能会使更改单元格 F2

变得有点困难