嗨,我正在使用此代码循环遍历另一个谷歌工作表,在“B”列中找到 ID 号“idNum”,一旦找到 ID 号,脚本将用新数据替换整行,但它似乎需要在下一个脚本被触发之前很长时间有没有办法让它更快地循环或使下一个脚本更快地触发。 这是我的代码谢谢
function editRow(){
var mainsheet = ('10_XEaQiR71----- Sheet ID ----uOhi9VVtk5FI')
var tsheet = SpreadsheetApp.openById(mainsheet).getSheetByName('Data')
var targetSheet1 = tsheet.getDataRange().getValues()
var sheet = SpreadsheetApp.getActive();
var sourceData = sheet.getSheetByName('Data Input').getRange('A2:IB2').getValues()[0];
var idNum = sheet.getSheetByName('Data Input').getRange ("B2").getValue();
var copyFrom = sheet.getSheetByName('Data Input').getRange('A2:IB2')
var data = copyFrom.getValues()
for(var i = 0; i<targetSheet1.length;i++){
if(targetSheet1[i][1] == idNum){
var row = i=i+1
tsheet.getRange('A'+row+':IB'+row).setValues(data);
break;
}
}
next script
}
答案 0 :(得分:0)
我相信你的目标如下。
getRange("B2")
和 getRange('A2:IB2')
检索值。在这种情况下,我认为您可以从 getRange('A2:IB2')
中检索它们。当你的脚本被修改后,变成如下。
function editRow() {
var mainsheet = '10_XEaQiR71----- Sheet ID ----uOhi9VVtk5FI';
var sheet = SpreadsheetApp.getActive();
var data = sheet.getSheetByName('Data Input').getRange('A2:IB2').getValues();
var idNum = data[0][1];
var tsheet = SpreadsheetApp.openById(mainsheet).getSheetByName('Data');
var row = tsheet.getRange("B1:B" + tsheet.getLastRow()).createTextFinder(idNum).findNext().getRow();
tsheet.getRange(row, 1, 1, data[0].length).setValues(data);
// next script
}