在上一篇文章之后腳本 setValue 基于列的值 基于其他列匹配參考的值
我收集作業表 ID 的地方,目前將近 300 個
我試圖從他們的 ID 編輯所有這些電子表格
function update()
{
const ss = SpreadsheetApp.getActiveSpreadsheet(); // Source spreadsheet
const src = ss.getSheetByName('Rela??o'); // Source sheet
const LR = src.getLastRow();
const Target_Id = src.getRange("B2:B" LR).getValues(); // Target IDs
for (var i = 0; i < LR; i )
{
if ( Target_Id[i] !== "" ) // check to skip "" rows
{
var ss_t = SpreadsheetApp.openById(Target_Id[i]); // Target spreadsheet
var trg = ss_t.getSheetByName('Config'); // Target sheet
trg.getRange("B24").setValue("TEST");
}
}
}
它一直有效,直到 B 列中的一行為“”空白
Exception: Invalid argument: id
update @ script.gs:14
顯然是我的支票
if ( Target_Id[i] !== "" )
沒有按照我嘗試的方式作業,真的不明白為什么,這是我的主要問題
問題 2:正如我測驗的那樣,我知道因為我試圖更新近 300 張紙,我會遇到另一個問題
Exceeded maximum execution time
更新everyting會很慢,在ID 40左右遇到那個錯誤,那么有沒有辦法優化這個程序,所以我可以更新所有的電子表格?現在我只想更新 1 個單元格,作為概念證明,最終目標是包含公式、格式等的整張表格,但如果需要,這是未來帖子的主題
uj5u.com熱心網友回復:
在您的腳本中,請按如下方式修改您的腳本。
從:
Target_Id[i] !== ""
到:
Target_Id[i][0] != ""
- 檢索的值
getValues()是二維陣列。由此,我提出了上述修改。
參考:
- 獲取值()
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/444217.html
標籤:javascript 谷歌应用脚本 google-sheets
