繁体   English   中英

应用程序脚本和谷歌表格,更改命名范围的正确方法?

[英]apps script and google sheets, proper way to change range of named range?

我的核心问题是我需要使用基于时间的触发器来引用变化范围。 由于 function 从我决定使用命名范围开始执行,但我遇到了 setRange() 的问题。

目前我的代码与此类似:

var newRange = sheet.getRange(startRow, startCol, lenRow, lenCol);
SpreadsheetApp.getActive().getNamedRanges()
   .filter((range) => range.getName() == 'named_of_range')[0].setRange(newRange);

这有时有效,但有时 newRange 不等于“named_of_range”,这是我想更改的命名范围。 命名范围的高度有时会比 newRange 多 1 或少 1。 newRange 是正确的范围,但命名范围没有正确更新。

希望我的解释是有道理的,否则我很乐意分享更多我的代码。 感谢您的任何帮助或建议!

这似乎有效:

function changeNamedRangeName() {
  const ss = SpreadsheetApp.getActive();
  let nr = ss.getNamedRanges();
  nr.forEach(r => {
    if(r.getName() == "Original") {
      r.setName("New Name");
    }
  })
}

不是 100% 肯定,但认为这只是我代码另一部分的错误。 很抱歉在测试更多我自己的程序之前询问并感谢你们帮助我。

问题是我正在使用工作表中已经存在的项目加倍数组,同时还添加到同一个数组。 长度用于确定产生问题的命名范围的长度。 我仍然不确定为什么该范围有时可以,而其他时候则不行,但至少它正在工作(目前)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM