首页 > 解决方案 > Google Apps 脚本:如何一次更新多个切片器的范围?

问题描述

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

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

代码:

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.

怎么了?如果我只使用工作表和代码中的一个切片器,则该代码有效。

非常感谢您的帮助!

标签: google-apps-script

解决方案


我不认为你可以编辑他们的范围。但是您可能可以使用新范围删除并再次创建它们:

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
  }

}

然后您可以根据需要修改其余设置。希望这可以帮助。


推荐阅读