2016-04-07 26 views
1

我正在使用excel中的表格,并且想要删除在我的52列中的任意一列中设置的所有过滤器,删除粗体,颜色等(回到正常格式)。从excel中删除所有活动过滤器

不知何故,我的代码不这样做,任何想法可能是什么问题?

'Clears filters on the activesheet. Will not clear filters if the sheet is protected. 
On Error Resume Next 
If ActiveWorkbook.ActiveSheet.FilterMode Or ActiveWorkbook.ActiveSheet.AutoFilterMode Then 
    ActiveWorkbook.ActiveSheet.ShowAllData 
End If 

'in case the sheet is protected 
ActiveWorkbook.Sheets("List").Cells.EntireColumn.Hidden = False 

回答

0

你可以尝试用此代替一个:

ActiveSheet.AutoFilter.ShowAllData 

它可能工作。

+0

那就是我在我的代码中有一些不起作用的原因。 – skatun

+0

不完全。你的代码有点不同。 – Vityata

+0

它的工作原理,但它不会删除排序:ActiveWorkbook.ActiveSheet.AutoFilter.ShowAllData – skatun

0
If ActiveSheet.AutoFilterMode Then ActiveSheet.Cells.AutoFilter 
If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData 
+0

'如果ActiveWorkbook.ActiveSheet.AutoFilterMode然后 ActiveWorkbook.ActiveSheet.Cells.AutoFilter 结束如果 如果ActiveWorkbook.ActiveSheet.AutoFilterMode然后 ActiveWorkbook。 ActiveSheet.ShowAllData End If'它不会触发任何这些如果句​​子.. – skatun

0

请与下面

Cells.AutoFilter 
0

尝试这种解决它:

ActiveWorkbook.Worksheets("List").ListObjects("FilterParts").Sort.SortFields.Clear 
ActiveSheet.ShowAllData 

但是我怎么可以排序此列

Range("FilterParts[[#Headers],[POS NUMBER]]").Select 

使其显示除了一切空白?