服务错误:电子表格(行...带有.setColumnFilterCriteria)

时间:2018-07-26 12:32:13

标签: google-apps-script

这个问题是另一个问题的延伸。 Apply basic filter to multiple values in a spreadsheet column

我遇到错误,尤其是Service error: Spreadsheets (line 8, file "Filter"),包含以下代码:

function testFilter() {
  var ss = SpreadsheetApp.getActive();
  var monthlyDetailSht = ss.getSheetByName("Monthly_Detail");
  var filterRange = monthlyDetailSht.getRange(2,12,359,1).getValues(); //Get L column values    
  var hidden = getHiddenValueArray2(filterRange,["Apple"]); //get values except Apple    
  var filterCriteria = SpreadsheetApp.newFilterCriteria().setHiddenValues(hidden).build();
  var rang = monthlyDetailSht.getDataRange();
  var filter = rang.getFilter() || rang.createFilter();// getFilter already available or create  a new one

  //remove filter and flush
  if(monthlyDetailSht.getFilter() != null){monthlyDetailSht.getFilter().remove();}
  SpreadsheetApp.flush();

  filter.setColumnFilterCriteria(12, filterCriteria);
};



    //flattens and strips column L values of all the values in the visible value array
    function getHiddenValueArray2(colValueArr,visibleValueArr){
      var flatArr = colValueArr.map(function(e){return e[0];}); //Flatten column L
      visibleValueArr.forEach(function(e){ //For each value in visible array    
        var i = flatArr.indexOf(e.toString()); 
        while (i != -1){ //if flatArray has the visible value        
          flatArr.splice(i,1); //splice(delete) it
          i = flatArr.indexOf(e.toString());
        }
      });
      return flatArr;
    }

我使用了Logger.log(hidden)来捕获函数返回的值,它是所有其他“水果”的列表,这些列表重复了L列中可用的次数。替代敏感数据。

这就是我的问题。为什么在几天内都可以正常工作时,为什么现在出现该错误?我该如何纠正?

尝试的修复程序:

  • 我尝试将行添加到数据末尾。没有解决。
  • 我尝试移除过滤器,冲洗,设置过滤器。没有修复。 (上面更新了代码,并在其他人感兴趣的情况下刷新了我的代码。)

1 个答案:

答案 0 :(得分:5)

现在正在工作。对于要在Google搜索中偶然发现此问题的人,我要注意几件事。首先,问题实际上是Google一方的错误。使用上面具有的相同代码,现在可以使用。我没有更改。

第二,我能够通过宏记录器记录过滤,而当我的原始代码不起作用时,该代码就可以工作。这可能会帮助那些时间紧迫而迫不及待地希望Google将他们的东西汇集在一起​​的人们。我仍然不确定原始代码中是什么引起了该错误,但是我猜这并不重要。我已经花了一整天的时间研究这个错误,而且似乎是零星的,没有一个罪魁祸首。如果以后发生,我的问题可能与您的问题不同。

希望有帮助!