Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重写GoogleSheet重置过滤器脚本使其更短_Javascript_Google Apps Script_Google Sheets_Google Sheets Api - Fatal编程技术网

Javascript 重写GoogleSheet重置过滤器脚本使其更短

Javascript 重写GoogleSheet重置过滤器脚本使其更短,javascript,google-apps-script,google-sheets,google-sheets-api,Javascript,Google Apps Script,Google Sheets,Google Sheets Api,我有这些代码,它们可以像我需要的那样完美地工作,但是如果可能的话,我需要重写它,使其变得更短,也许可以使用一个循环。这只适用于第5列,如果我有超过10、20或更多的过滤列,并且我不想再次执行“filter.removeColumnFilterCriteria(11)…(n);“感谢您的帮助!我刚接触煤气 function resetFilter() { var ss = SpreadsheetApp.getActive(); var filter = ss.getActiveShee

我有这些代码,它们可以像我需要的那样完美地工作,但是如果可能的话,我需要重写它,使其变得更短,也许可以使用一个循环。这只适用于第5列,如果我有超过10、20或更多的过滤列,并且我不想再次执行“filter.removeColumnFilterCriteria(11)…(n);“感谢您的帮助!我刚接触煤气

  function resetFilter() {
  var ss = SpreadsheetApp.getActive();
  var filter = ss.getActiveSheet().getFilter();
  
  if (filter !== null) {
    filter.removeColumnFilterCriteria(1);
    filter.removeColumnFilterCriteria(2);
    filter.removeColumnFilterCriteria(3);
    filter.removeColumnFilterCriteria(4);
    filter.removeColumnFilterCriteria(5);
    return;
  }
}


您可以使用for循环和函数的一个参数来实现这一点,使其成为动态的

function resetFilter(n) {
  var ss = SpreadsheetApp.getActive(),
    filter = ss.getActiveSheet().getFilter();
  
  if(filter !== null) {
    for(var i = 0;i < n; i++) {
      filter.removeColumnFilterCriteria(i);
    }
  }
}

// for example 5
resetFilter(5);
// for example 20
resetFilter(20);
函数重置过滤器(n){
var ss=SpreadsheetApp.getActive(),
filter=ss.getActiveSheet().getFilter();
如果(过滤器!==null){
对于(变量i=0;i
您可以使用for循环和函数的参数来实现这一点,从而使其成为动态的

function resetFilter(n) {
  var ss = SpreadsheetApp.getActive(),
    filter = ss.getActiveSheet().getFilter();
  
  if(filter !== null) {
    for(var i = 0;i < n; i++) {
      filter.removeColumnFilterCriteria(i);
    }
  }
}

// for example 5
resetFilter(5);
// for example 20
resetFilter(20);
函数重置过滤器(n){
var ss=SpreadsheetApp.getActive(),
filter=ss.getActiveSheet().getFilter();
如果(过滤器!==null){
对于(变量i=0;i
最好在函数内部声明
n
,或者提供一个默认值,因为函数直接在应用程序脚本中运行(而不是从外部运行)。我收到以下错误消息:“异常:这些列超出范围”可能您正试图删除不存在的列!最好在函数内部声明
n
,或者提供一个默认值,因为函数直接在应用程序脚本中运行(而不是从外部运行)。我收到了以下错误消息:“异常:这些列超出范围”可能您正试图删除不存在的列!