【问题标题】:Filter cells using cell value as reference使用单元格值作为参考过滤单元格
【发布时间】:2015-02-21 21:47:03
【问题描述】:

我需要使用单元格值作为参考来过滤 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 的值时,它都会隐藏所有单元格并导致 excel 崩溃,不知何故...... 所以我需要的是: 使用单元格 f2 作为条件的参考,过滤范围 a1:d100 中的数据,这样当单元格 f2 中的值发生变化时,a1:d100 只显示条件为真的行...

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

【问题讨论】:

    标签: excel vba


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      尝试以下方法:

      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.

      有点困难

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-05-18
        • 2015-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多