excel - 基于下拉的自动过滤器
问题描述
我正在尝试创建一个自动过滤器,该过滤器采用“sheet1”的 A2 中的内容,并在 F2 及以下的“Sheet2”上更改过滤器;
这是到目前为止的代码,我所需要的只是让它看看不同的工作表
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$2" Then
If Range("F2") = "All" Then
Range("A2").AutoFilter
Else
Range("A2").AutoFilter Field:=6, Criteria1:=Range("F2")
End If
End If
End Sub
解决方案
您需要指定您的范围在哪个工作簿/工作表中。否则 VBA 无法知道这一点。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$2" Then
If ThisWorkbook.Worksheets("Sheet1").Range("F2") = "All" Then
ThisWorkbook.Worksheets("Sheet2").Range("A2").AutoFilter
Else
ThisWorkbook.Worksheets("Sheet2").Range("A2").AutoFilter Field:=6, Criteria1:=ThisWorkbook.Worksheets("Sheet1").Range("F2")
End If
End If
End Sub
切勿使用Range
、Cells
或不指定它们所在的工作簿Rows
和Columns
工作表。否则 Excel 会“猜测”,它可能会猜错。
推荐阅读
- node.js - AWS - 不接收 HTTPS 请求
- ios - 具有双向无限水平滚动和分页功能的 CollectionView
- sql - 找出表中的哪一行被锁定 - SQL server
- c++ - 获取玩家位置,由于包含循环,无法传递对象实例
- sql - 如何根据在另一列中计算的 AVG 选择所有行?
- regex - 通过 Python + RegEx 提高大型文档文本标记化的性能
- c++ - typeid在不同的计算机上是否相同?
- c# - 为什么 Animator Controller 从 Inspector 中消失并且在运行游戏时未分配?
- r - 在R中删除有条件的行
- python - 如何使 xlabels 垂直并减小热图中颜色条的大小