Excel VBA从自动筛选中删除筛选实际上会删除所有记录
我一直有一个问题,试图让这个工作。 我已使筛选器正常工作,但无法使其删除筛选器并显示所有记录。Excel VBA从自动筛选中删除筛选实际上会删除所有记录,excel,vba,Excel,Vba,我一直有一个问题,试图让这个工作。 我已使筛选器正常工作,但无法使其删除筛选器并显示所有记录。 结果是,它从过滤器中删除了所有复选标记,而不是全部选中,从而给我留下了一个空白表。 我尝试了以下多种变体,并且简单地说: Sheets("live_list").Range("main_list").AutoFilter Field:=8 当前所在的主代码 Private Sub Worksheet_Change(ByVal Target As Range)
结果是,它从过滤器中删除了所有复选标记,而不是全部选中,从而给我留下了一个空白表。
我尝试了以下多种变体,并且简单地说:
Sheets("live_list").Range("main_list").AutoFilter Field:=8
当前所在的主代码
Private Sub Worksheet_Change(ByVal Target As Range)
If "D2" <> "All" Then
Sheets("live_list").Range("main_list").AutoFilter Field:=8, Criteria1:=Cells(2, 4).Value
Else
Sheets("live_list").ListObjects("main_list").AutoFilter.ShowAllData
End If
End Sub
Private子工作表\u更改(ByVal目标作为范围)
如果“D2”“全部”,则
工作表(“活动列表”)。范围(“主列表”)。自动筛选字段:=8,标准1:=单元格(2,4)。值
其他的
工作表(“实时列表”).ListObjects(“主列表”).AutoFilter.ShowAllData
如果结束
端接头
请尝试以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
With Sheets("live_list")
If Not .FilterMode = True Then
.Range("main_list").AutoFilter Field:=8, Criteria1:=Cells(2, 4).Value
Else
.AutoFilter.ShowAllData
End If
End With
End Sub
这应该可以正常工作。太愚蠢了,没有正确声明单元格
Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(2, 4).Value <> "All" Then
Sheets("live_list").Range("main_list").AutoFilter Field:=8, Criteria1:=Cells(2, 4).Value
Else
Sheets("live_list").ListObjects("main_list").AutoFilter.ShowAllData
End If
End Sub
Private子工作表\u更改(ByVal目标作为范围)
如果单元格(2,4)。值为“全部”,则
工作表(“活动列表”)。范围(“主列表”)。自动筛选字段:=8,标准1:=单元格(2,4)。值
其他的
工作表(“实时列表”).ListObjects(“主列表”).AutoFilter.ShowAllData
如果结束
端接头
“D2”“All”
并没有做您认为应该做的事情。这是将字符串D2
与字符串All
进行比较<代码>“D2”“所有”将始终是真的。更改工作表(“live_list”)。列表对象(“main_list”)。自动筛选。ShowAllData
到工作表(“live_list”)。ShowAllData
@BigBen Bingo,这就是问题所在,我不知道我在做什么。我希望能够根据单元格中放置的任何内容进行筛选(这是一个经过验证的下拉列表),然后使用“所有选项”移除过滤器