Javascript 找到唯一id时更新或替换其他工作表中的行数据-Google Appscript

Javascript 找到唯一id时更新或替换其他工作表中的行数据-Google Appscript,javascript,google-apps-script,google-sheets-api,Javascript,Google Apps Script,Google Sheets Api,我需要有人修改我在这里找到的脚本,以便在找到唯一ID时更新或替换sheet1中sheet2的行值。这只适用于第2列..我需要一些东西来更新或替换工作表中的行2最多10列或更多。我有一个电子表格样本。如果您在sheet2上看到,一些行值丢失或尚未更新,因此我需要更新这些行或替换sheet1中的行 以下是电子表格: 谢谢你的帮助和分享你的知识 function updateEntrees() { var ss=SpreadsheetApp.getActive(); var sh1=ss.g

我需要有人修改我在这里找到的脚本,以便在找到唯一ID时更新或替换sheet1中sheet2的行值。这只适用于第2列..我需要一些东西来更新或替换工作表中的行2最多10列或更多。我有一个电子表格样本。如果您在sheet2上看到,一些行值丢失或尚未更新,因此我需要更新这些行或替换sheet1中的行

以下是电子表格:

谢谢你的帮助和分享你的知识

function updateEntrees() { var ss=SpreadsheetApp.getActive(); var sh1=ss.getSheetByName('Sheet1'); var rg1a=sh1.getRange(2,1,sh1.getLastRow()-1,1); var vA1a=rg1a.getValues(); var rg1b=sh1.getRange(2,2,sh1.getLastRow()-1,1); var vA1b=rg1b.getValues(); var sh2=ss.getSheetByName('Sheet2'); var rg2a=sh2.getRange(2,1,sh2.getLastRow()-1,1); var vA2a=rg2a.getValues(); var rg2b=sh2.getRange(2,2,sh2.getLastRow()-1,1); var vA2b=rg2b.getValues(); for(var i=0;i<vA1a.length;i++) { for(var j=0;j<vA2a.length;j++) { if(vA1a[i][0]==vA2a[j][0]) { vA2b[j][0]=vA1b[i][0] } } } rg2b.setValues(vA2b); 函数updateEntrees(){ var ss=SpreadsheetApp.getActive(); var sh1=ss.getSheetByName('Sheet1'); var rg1a=sh1.getRange(2,1,sh1.getLastRow()-1,1); var vA1a=rg1a.getValues(); var rg1b=sh1.getRange(2,2,sh1.getLastRow()-1,1); var vA1b=rg1b.getValues(); var sh2=ss.getSheetByName('Sheet2'); var rg2a=sh2.getRange(2,1,sh2.getLastRow()-1,1); var vA2a=rg2a.getValues(); var rg2b=sh2.getRange(2,2,sh2.getLastRow()-1,1); var vA2b=rg2b.getValues();
对于(var i=0;i请尝试以下代码,在第二行中,根据需要更改“numColumns”的值:

function updateEntrees() {
  var numColumns = 9;
  var ss = SpreadsheetApp.getActive();
  
  var sh1 = ss.getSheetByName('Sheet1');
  
  var rg1a = sh1.getRange(2,1,sh1.getLastRow()-1,1);
  var vA1a = rg1a.getValues();
  
  var rg1b = sh1.getRange(2,2,sh1.getLastRow()-1,numColumns);
  var vA1b = rg1b.getValues();
  
  var sh2 = ss.getSheetByName('Sheet2');
  
  var rg2a = sh2.getRange(2,1,sh2.getLastRow()-1,1);
  var vA2a = rg2a.getValues();
  
  var rg2b = sh2.getRange(2,2,sh2.getLastRow()-1,numColumns);
  var vA2b = rg2b.getValues();
  
  for( var i=0; i < vA1a.length; i++ ) {
    for( var j=0; j < vA2a.length; j++ ) {
      if( vA1a[i][0] == vA2a[j][0] ) {
        vA2b[j] = vA1b[i];
      }
    }
  }
  rg2b.setValues(vA2b);
};
函数updateEntrees(){
var numColumns=9;
var ss=SpreadsheetApp.getActive();
var sh1=ss.getSheetByName('Sheet1');
var rg1a=sh1.getRange(2,1,sh1.getLastRow()-1,1);
var vA1a=rg1a.getValues();
var rg1b=sh1.getRange(2,2,sh1.getLastRow()-1,numColumns);
var vA1b=rg1b.getValues();
var sh2=ss.getSheetByName('Sheet2');
var rg2a=sh2.getRange(2,1,sh2.getLastRow()-1,1);
var vA2a=rg2a.getValues();
var rg2b=sh2.getRange(2,2,sh2.getLastRow()-1,numColumns);
var vA2b=rg2b.getValues();
对于(变量i=0;i
感谢Kishan的分享。这是一种更好、更短的方法。我能够理解,但我用了很长的方法指定了每一列:,vA2b[j][0]=vA1b[I][0]vA2b[j][1]=vA1b[I][1]vA2b[j][2]=vA1b[I][2]……但它们的工作原理相同。。