我正在尝试创建一个宏,它将创建一个表,然后删除标题行中的过滤器。为了澄清,我希望过滤器本身已根除,完全从表中删除。在其他线程上看,很难看出人们是否只是希望他们的过滤器说“全选”或者他们是否希望过滤器本身被删除..我希望过滤器本身消失。
任何帮助将不胜感激!我不是VBA最伟大的人,似乎无法在Google上找到任何使用Excel的野心。
答案 0 :(得分:1)
这应该在表格中打开/关闭过滤器。因此,运行一次,关闭过滤器,再次运行以打开过滤器。
Sheets("Sheetname").ListObjects("TableName").Range.AutoFilter
答案 1 :(得分:0)
要关闭过滤器,只需使用
unsigned short int min = input.front();
unsigned short res = 0;
for (size_t i = 1; i < input.size(); ++i)
{
if (input[i] <= min)
{
min = input[i];
continue;
}
int dif = input[i] - min;
res = dif > res ? dif : res;
}
return res != 0 ? res : -1;
或
Cells.AutoFilter
答案 2 :(得分:0)
我最喜欢的变体如下:
Sub ResetFilters()
On Error Resume Next
ActiveSheet.ShowAllData
End Sub
答案 3 :(得分:0)
我发现当按钮触发vba代码时,ListObjects.Range.AutoFilter
不起作用,因为再次按下按钮会重新打开过滤器。在这种情况下,您可以使用:
Sheets("Sheetname").ListObjects("TableName").ShowAutoFilterDropDown = False