Надеюсь, это поможет!
вопрос является продолжением другого.Применить базовый фильтр к нескольким значениям в столбце электронной таблицы
Я испытываю ошибку, в частности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. Я использую фрукты в качестве замены для конфиденциальных данных.
Итак, вот мой вопрос. Почему я получаю эту ошибку сейчас, когда она работала совершенно нормально в течение нескольких дней? Как я могу это исправить?
Попытки исправить:
Я пытался добавить строки в конец моих данных. Не исправить.Я попытался удалить фильтр, промыть, установить фильтр. Не исправить. (обновленный код выше с тем, что я сделал, чтобы очистить на случай, если кто-то еще заинтересован.)