【问题标题】:Dynamic Excel VBA filter动态 Excel VBA 过滤器
【发布时间】:2017-07-24 19:49:44
【问题描述】:

我有一个宏可以根据修复标准过滤原始数据。我已将这个宏分配在一个按钮上(移入)。



此宏显示单元格 D11 的详细原始数据(41 值) 代码就像

Sub Jan_in()
Application.ScreenUpdating = False
Dim sStradd As String
Sheets("Hiring_Attrition").Activate
Range("A3").Select
sStradd = ActiveCell.CurrentRegion.Address
ActiveSheet.Range(sStradd).AutoFilter Field:=1, Criteria1:="Jan-17"
Call clear
Sheets("Hiring_Attrition").Activate
ActiveSheet.Range("B3:H3").Select
Sheets("Hiring_Attrition").Range(Selection, Selection.End(xlDown)).Select
Selection.Copy Sheets("Report").Range("B8")
Selection.AutoFilter
Sheets("Report").Activate
Sheets("Report").Range("B:H").EntireColumn.AutoFit
Sheets("Report").Range("A1").Select
Application.ScreenUpdating = True
End Sub `

我有多个这样的宏,但现在我想要一个根据单元格引用选择过滤器的宏。 Like Macro 会将条件一作为所选单元格所在同一列的 -2 行,并将条件二作为所选单元格所在同一行的 -2 列。

如果需要进一步说明,请告诉我。

【问题讨论】:

  • 我很难理解“Like Macro 会将标准一作为选定单元格所在的同一列的 -2 行,并将标准二作为选定单元格的同一行的 -2 列。”
  • 要设置条件,您可以将值存储在条件1和条件2等变量中。要引用选定单元格旁边的 2 行,请使用类似:criteria1=selection.Offset(RowOffSet:=-2, ColumnOffset:=0).Select 并将列 -2 作为条件2=Selection.Offset(RowOffSet:=0, ColumnOffset: =-2).选择

标签: excel vba filter


【解决方案1】:

动态过滤器:

我有一张带有下拉选择器的工作表(我按此指令构建:http://www.techrepublic.com/blog/microsoft-office/how-to-add-a-drop-down-list-to-an-excel-cell/)。过滤器可以根据选择的项目进行修改。代码如下所示:

For i = 1 To 10
If Range("SELECTOR").Value = Sheets("sheet2").Range("a" & i).Value Then
    Selected = i
End If
Next

上面的代码标识了从列表中选择了哪个值。 “SELECTOR”是下拉单元格,我们在第二张表上逐步检查 10 个单元格以确定选择了哪个行号。现在,您可以使用该信息来自定义您的过滤器。例如:

If Selected = 7 Then
 Range("A4:Z1000").AutoFilter
 Range("A4:Z1000").AutoFilter field:=1, Criteria1:="", visibledropdown:=True
Else
 Range("A4:Z1000").AutoFilter
 Range("A4:Z1000").AutoFilter field:=Selected + 1, Criteria1:="x", 
 visibledropdown:=True
End If

我先做空自动过滤器的原因是它清除了前一个过滤器。 Criteria = "x" 因为这是我过滤的依据,但您可以插入一个变量以使其动态化。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多