我需要使用单元格值作为参考来过滤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计算机...
答案 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
变得有点困难