首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Apps脚本:如何同时更新多个切片器的范围?

Google Apps脚本:如何同时更新多个切片器的范围?
EN

Stack Overflow用户
提问于 2021-02-25 03:53:50
回答 2查看 279关注 0票数 0

问题:无法使用Google Script更新两个或更多切片器的范围

信息:工作表包含两个切片器

代码:

代码语言:javascript
复制
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Tracking');

  var slicers = sheet.getSlicers();
  var slicerRange = sheet.getRange('A3:A160'); //current slicer range A3:A165

  slicers[0,1].setRange(slicerRange);
}

Error: Two slicers can either have zero or all common rows.

怎么啦?如果我只在工作表和代码中使用一个切片器,代码就可以工作。

提前感谢大家的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-25 06:20:42

我不认为你可以编辑他们的范围。但您可以删除它们,然后使用新的范围重新创建它们:

代码语言:javascript
复制
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
  }

}

然后,您可以根据需要修改它们的其余设置。希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2021-02-25 14:39:06

非常感谢你的帮助!它最终帮助我让它工作起来。

这是我最后得到的代码,它没有insertSlicer()上的计数器,因为我需要给出单独的设置:

代码语言:javascript
复制
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');
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66357977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档