Google脚本:如何查找和更新整行

时间:2019-01-23 06:27:22

标签: google-apps-script google-sheets

我正在寻找一种测试范围是否已经存在的方法。如果是新条目,则将其添加为最后一行;如果不是新条目,则将更新现有行。

$('#parent').find('#child').attr('id', 'modifyChildId');

2 个答案:

答案 0 :(得分:0)

您可以读取母版纸的值,并遍历这些值以确定哪个行(索引)包含相同的值。有了索引后,就可以使用更新的数据来更新该范围。

它应该看起来像这样:

// get values
var masterSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Master');
var masterData = masterSheet.getDataRange().getValues();
var updateIndex;

// loop through master data to find the correct index
masterData.some(function (row, idx) {
  // check column c equals new data column c
  // data[0] because is multidimensional
  if(row[2] === data[0][2]) {
    updateIndex = idx;
    return updateIndex;
  }
});

// in case updateIndex is set we should update the data else it is a new record
if(updateIndex !== undefined) {
  masterSheet.getRange(updateIndex, 1, 1, data[0].length).setValues(data);
}

答案 1 :(得分:0)

管理找出答案

function Update(){
  var ss =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Placeholder'); 
  var range = ss.getRange('A2:AS2')
  var data = range.getValues();
  var Key = ss.getRange('C2').getValue(); 
  var ts =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Master'); 
  var datarange = ts.getRange('C1:C');
  var datavalues = datarange.getValues(); 

  for (var r=0; r<=datavalues.length; r++) 
  { 
     var ss =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Placeholder'); 
     var Key = ss.getRange('C2').getValue();    
    if(datavalues[r] == Key)
       {ts.getRange(r+1, 1,1,45).setValues(data);}
  }
Clearlookupfunc();
SpreadsheetApp.getUi().alert('Update Submitted');
}