删除工作表1中的所有行,列中的值与工作表2中的相同

时间:2017-11-16 22:16:36

标签: google-apps-script google-sheets

我想实现下面提供的示例,删除sheet1中与sheet2类似的所有行。

Sheet 1中

   Name             ID
-------------------------
 1. Name11         Value1
 2. Name22         Value2
 3. Name33         Value3
 4. Name44         Value4
 5. Name55         Value5
    ...            ...

Sheet 2中

   Name             ID
-------------------------
 1. Name13         Value3
 2. Name52         Value5
    ...            ...     

Sheet1删除行后

   Name             ID
-------------------------
 1. Name11         Value1
 2. Name22         Value2
 3. Name44         Value4
    ...                

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

function myFunction() {
  var ss=SpreadsheetApp.getActive();
  var sh1=ss.getSheetByName('Sheet1');
  var sh2=ss.getSheetByName('Sheet2');
  var rg1=sh1.getDataRange();
  var rg2=sh2.getDataRange();
  var v1A=rg1.getValues();
  var v2A=rg2.getValues();
  for(var i=v1A.length-1;i>0;i--)
  {
    var row1=v1A[i];
    for(var j=1;j<v2A.length;j++)
    {
      row2=v2A[j];
      if(row1.join()==row2.join())
      {
        sh1.deleteRow(i+1);
        break;
      }
    }
  }
}