簡體   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