动态Excel VBA筛选器

动态Excel VBA筛选器

问题描述:

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

enter image description here

该宏被示出的细节的原始数据为单元格D11(41值) 代码是这样动态Excel VBA筛选器

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 ` 

我有多个宏像这样但现在我想的宏根据该挑滤波器细胞参考。与宏一样,将选择标准1作为所选单元格所在列的相同列的-2行,对所选单元格所在的同一行的标准为2列-2列。

让我知道是否需要进一步澄清。

+0

Im难以理解“Like Macro将采用标准一作为所选单元格所在的同一列的第二行,以及所选单元格的同一行的两个-2列”。 –

+0

要设置标准,您可以将值存储在诸如criteria1和criteria2的变量中。要引用选定单元格旁边的2行,请使用以下内容:criteria1 = selection.Offset(RowOffSet:= - 2,ColumnOffset:= 0)。为列2选择criteria2 = Selection.Offset(RowOffSet:= 0,ColumnOffset: = -2)。选择 – TJYen

动态过滤:

我有一个下拉选择器(我建立由该指令: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 

上面的代码标识列表中的哪个值被选中。 “选择器”是下拉单元格,我们正在逐步选择第二个表格中的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 

我之所以首先执行空的AutoFilter,是因为它清除了以前的过滤器。 Criteria =“x”,因为这是我过滤的内容,但是你可以在变量中使用动态变量。

希望这会有所帮助。