清除自动过滤器和高级过滤器

时间:2018-08-22 22:22:14

标签: reset autofilter advanced-filter

我遇到无法解决的问题。我编写了一个程序,该程序使用AdvancedFilters在Excel Form中为组合框创建下拉菜单,以便从下拉菜单中消除重复项(以下是其中一个下拉菜单的示例)。我也在同一Excel表单中使用 AutoFilter 来过滤电子表格。

我编写了此程序,以供具有相同类型不同数据的多个用户使用。所有列在整个工作表中都是一致的,因此我删除了现有的数据行,以便将新的数据行粘贴到工作表上。

问题在于,在删除旧行并粘贴新行之前,筛选工作正常。筛选器将无法识别新的数据行。看来AdvancedFilter功能可以正常工作,但是AutoFilter无法识别新数据。

我在下面提供了代码,但我不知道这将有助于解决问题。似乎程序正在记住旧数据中的过滤器。我曾尝试使用AutoFilterMode = FalseActiveSheet.ShowAllData,但是似乎没有什么可以将工作表重置为新工作表。

我愿意接受所有建议。

AdvancedFilter的示例代码:

Sheets("Grant Spreadsheet").Activate

Me.ARRACmboBx.SetFocus 'Set cursor on the ARRACmboBx field
Range("a1:a200").AdvancedFilter Action:=xlFilterCopy,_ 
    CopyToRange:=Worksheets("Lists").Range("j1"), Unique:=True
    'Copy Unique Values to List Worksheet for use in Dropdown

Dim List As Worksheet

Set List = Worksheets("Lists")

With List.Range(("j2:j4"),List.UsedRange.Rows(Worksheets("Lists")_
    .UsedRange.Rows.Count)).Sort Key1:=List.Range("j2:j4"),_ 
    Order1:=xlAscending, Header:=xlNo, OrderCustom:=1,_ 
    MatchCase:=False, Orientation:=xlTopToBottom,_ 
    DataOption1:=xlSortTextAsNumbers

End With

自动过滤的代码:

With .Range("a1:at1000")

    .AutoFilter Field:=1, Criteria1:="*" & Me.ARRACmboBx.Value & "*"
    .AutoFilter Field:=2, Criteria1:="*" & Me.PreAwardCmboBx.Value & "*"
    .AutoFilter Field:=3, Criteria1:="*" & Me.PICmboBx.Value & "*"
    .AutoFilter Field:=4, Criteria1:="*" & Me.ProjTypeCmboBx.Value & "*"
    .AutoFilter Field:=5, Criteria1:="*" & Me.GrantNameCmboBx.Value & "*"
    .AutoFilter Field:=6, Criteria1:="*" & Me.CompleteCmboBx.Value & "*"
    .AutoFilter Field:=7, Criteria1:="*" & Me.OperatingCmboBx.Value & "*"
    .AutoFilter Field:=8, Criteria1:="*" & Me.FundNoCmboBx.Value & "*"
    .AutoFilter Field:=9, Criteria1:="*" & Me.OrgTxtBx.Value & "*"
    .AutoFilter Field:=10, Criteria1:="*" & Me.ProjectTxtBx.Value & "*"
    .AutoFilter Field:=11, Criteria1:="*" & Me.AccountTxtBx.Value & "*"
    .AutoFilter Field:=14, Criteria1:="*" & Me.GrantAgencyCmboBx.Value & "*"
    .AutoFilter Field:=15, Criteria1:="*" & Me.GrantDeptCmboBx.Value & "*"
    .AutoFilter Field:=16, Criteria1:="*" & Me.ProgramCmboBx.Value & "*"
    .AutoFilter Field:=17, Criteria1:="*" & Me.PassthroughCmboBx.Value & "*"
    .AutoFilter Field:=18, Criteria1:="*" & Me.CatalogNoCmboBx.Value & "*"
    .AutoFilter Field:=19, Criteria1:="*" & Me.GrantIDCmboBx.Value & "*"
    .AutoFilter Field:=20, Criteria1:="*" & Me.FederalCmboBx.Value & "*"

End With

0 个答案:

没有答案