问题描述
这是我的问题:
由于以下行,我下面的代码不起作用:current.uncheck();
并且日志说:“在具有过滤掉的行的范围上不支持此操作。”
但是这张表不应该包含过滤器,我也尝试删除潜在的过滤器,但没有成功。
if(current.isChecked()) // If the check Box is checked
{
// I put some data in a array :
var arraySupport = rangeColumnToArray(ss.getSheetByName("import_support").getRange("A1:A15"))
var dataSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("copy of Data Bank");
// I change criteria filter on other sheet :
var criteriaSupport = SpreadsheetApp.newFilterCriteria()
.setHiddenValues(arraySupport)
.build();
dataSheet.getFilter().setColumnFilterCriteria(24,criteriaSupport);
ss.getRange("G5:G").clearContent(); // clear eventual content
copyExo(); // This fonction copy one column from the filtered sheet (dataSheet) on activeSheet
activeSheet.getFilter().remove(); // I try that without success
current.uncheck(); // And I try to uncheck the checkBox
}
感谢您为我提供的所有帮助。
解决方法
虽然我不确定 current
和 if 语句中使用的范围之间的关系,但为了使 current.uncheck()
起作用,我想提出以下修改。>
修改后的脚本:
if(current.isChecked()) // If the check box is checked
{
current.uncheck(); // <--- "current.uncheck();" at the last line in this function is moved to here.
// I put some data in a array :
var arraySupport = rangeColumnToArray(ss.getSheetByName("import_support").getRange("A1:A15"))
注意:
- 虽然我不确定
copyExo()
的详细脚本,但我认为在您的脚本中,如果current
在您的 if 语句中的脚本中没有更改,则current.uncheck()
在最后一行有效。比如你想确认的时候,在脚本的每一行放if (current) console.log(current.getA1Notation())
怎么样?这样,当current
的值发生变化时,您可以在日志中看到它。