Google apps script 谷歌应用程序脚本:如何一次更新多个切片器上的范围?
问题:无法使用Google脚本更新两个或多个切片器的范围 信息:工作表包含两个切片器 代码: 怎么了?如果我只在工作表和代码中使用一个切片器,代码就可以工作Google apps script 谷歌应用程序脚本:如何一次更新多个切片器上的范围?,google-apps-script,Google Apps Script,问题:无法使用Google脚本更新两个或多个切片器的范围 信息:工作表包含两个切片器 代码: 怎么了?如果我只在工作表和代码中使用一个切片器,代码就可以工作 提前非常感谢您的帮助 我认为你无法编辑它们的范围。 但您可能会删除它们,然后使用新的系列重新创建它们: function test(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('Tracking'); var
提前非常感谢您的帮助 我认为你无法编辑它们的范围。 但您可能会删除它们,然后使用新的系列重新创建它们:
function test(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Tracking');
var slicers = sheet.getSlicers();
var newRange = sheet.getRange('A3:A160'); // your new range
var slicersCount = 0;
for (i=0;i<slicers.length;i++){
slicers[i].remove();
slicersCount ++;
}
for (i=0;i<slicersCount;i++){
sheet.insertSlicer(newRange, 5, 3); // choose anchorRowPos and anchorColPos you want
}
}
功能测试(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“跟踪”);
var slicers=sheet.getSlicers();
var newRange=sheet.getRange('A3:A160');//您的新范围
var-slicersCount=0;
对于(i=0;i非常感谢你的帮助!它最终帮助我使它工作起来
这是我最后得到的代码,在insertSlicer()上没有计数器,因为我需要给出单独的设置:
function test() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Tracking');
var slicers = sheet.getSlicers();
var rowValue = sheet.getLastRow();
var newRange = sheet.getRange('A3:X'+rowValue); //new range
for (i=0; i<slicers.length; i++){
slicers[i].remove();
}
//Slicers to column A and D
destinationSheet.insertSlicer(newRange, 2, 1); // choose anchorRowPos and anchorColPos
destinationSheet.insertSlicer(newRange, 2, 4);
//Get new slicers
var slicers = destinationSheet.getSlicers();
var filterCriteria = SpreadsheetApp.newFilterCriteria().setHiddenValues(['']).build();
slicers[0].setColumnFilterCriteria(1, filterCriteria);
slicers[0].setTitle('Title1');
var filterCriteria2 = SpreadsheetApp.newFilterCriteria().setHiddenValues(['1']).build();
slicers[1].setColumnFilterCriteria(24, filterCriteria2);
slicers[1].setTitle('Title2');
}
功能测试(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheetByName(“跟踪”);
var slicers=sheet.getSlicers();
var rowValue=sheet.getLastRow();
var newRange=sheet.getRange('A3:X'+rowValue);//新范围
对于(i=0;iI不太使用切片器,但在我看来getSlicers()返回一个平面数组,那么这个语法slicers[0,1]
应该做什么呢?谢谢你的评论。setRange函数要求我指向数组中的单个元素。欢迎@RasmusHvarregaard!
function test() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Tracking');
var slicers = sheet.getSlicers();
var rowValue = sheet.getLastRow();
var newRange = sheet.getRange('A3:X'+rowValue); //new range
for (i=0; i<slicers.length; i++){
slicers[i].remove();
}
//Slicers to column A and D
destinationSheet.insertSlicer(newRange, 2, 1); // choose anchorRowPos and anchorColPos
destinationSheet.insertSlicer(newRange, 2, 4);
//Get new slicers
var slicers = destinationSheet.getSlicers();
var filterCriteria = SpreadsheetApp.newFilterCriteria().setHiddenValues(['']).build();
slicers[0].setColumnFilterCriteria(1, filterCriteria);
slicers[0].setTitle('Title1');
var filterCriteria2 = SpreadsheetApp.newFilterCriteria().setHiddenValues(['1']).build();
slicers[1].setColumnFilterCriteria(24, filterCriteria2);
slicers[1].setTitle('Title2');
}