这是因为 AdvancedFilter 会将包含表头和过滤数据的区域作为数据集合区域进行处理。这将导致表头的下拉按钮与列表的关联关系被破坏。
解决这个问题的办法是在 AdvancedFilter 执行前,取消所有表格的筛选操作:
Sub MyAdvancedFilter()
Dim ws As Worksheet
Dim tbl As ListObject
'取消所有表格的筛选
For Each ws In ThisWorkbook.Worksheets
For Each tbl In ws.ListObjects
If tbl.ShowAutoFilter Then
tbl.AutoFilter.ShowAllData
End If
Next tbl
Next ws
'执行 AdvancedFilter
'...
End Sub
这样就可以保证在 AdvancedFilter 执行前,所有表头的下拉按钮功能都能正常使用。
上一篇:AdvancedFilter后.ShowAllData,表格没有完全清除
下一篇:AdvancedInstaller的要求在重新打包新产品版本时更改“ProductCode”和“UpgradeCode”GUIDs