我如何获得此代码以仅复制符合对象匹配条件的行?当前是否复制每一行

时间:2019-04-29 02:04:47

标签: for-loop if-statement google-apps-script

当前,此代码复制每一行,而不是复制符合我的条件的行 我遇到了一些使其循环的问题。因此是记录器。
我对此很陌生。

  function searchAnotherSheetAndReturnRows(){
Logger.clear()
  var tss = SpreadsheetApp.openById('1dX5MMLXGsG_S_KzRhOcquOp00VhzRBSlTCkyw'); // tss = target spreadsheet
  var ts = tss.getSheetByName('Sheet1'); // ts = target sheet
var sss = SpreadsheetApp.openById('1ImDswr6ADS7t4HKIFHpntykN2LS7Mmd-cls34'); // sss = source spreadsheet
  var ss = sss.getSheetByName('Page1'); // ss = source sheet
 var tslast_row = ts.getLastRow();

var i=0;
Logger.log(i)

for (var i = 1; i < tslast_row; i++) {
Logger.log(i)

Logger.log(tslast_row);
 var ssSearch1 = ss.getRange(2,1).getValue();
     Logger.log(ssSearch1); 
 var tsSearch1 = ts.getRange(i,1).getValue();
     Logger.log(tsSearch1);

if (ssSearch1 == tsSearch1); {


     var  tsSearch1Range = ts.getRange(i,1,1,7);
     Logger.log(tsSearch1Range);
     var range2Copy = tsSearch1Range.getValues();//  Copies data from root sheet
     Logger.log(range2Copy);
     var last_row = ss.getLastRow();
     Logger.log(last_row);
     var last_row = last_row+1;
     Logger.log(last_row);
     ss.getRange(last_row,1,1,7).setValues(range2Copy);// Adds  root sheet data to target


}
}

}

1 个答案:

答案 0 :(得分:0)

真的很难弄清楚您要做什么。因此,这里有一个示例,希望会对您有所帮助。此功能的工作是将AlaskanWilderness中包含GOLD的行复制到MyPocket。 (工作表名称)

function moveGoldFromAlaskanWildernessToMyPocket() {
  var tss=SpreadsheetApp.openById('id'); 
  var ts=tss.getSheetByName('MyPocket');
  var sss=SpreadsheetApp.openById('id');
  var ss=sss.getSheetByName('AlaskanWildernes');
  var sr=ss.getDataRange()
  var sd=sr.getValues();
  var criteria='GOLD';
  for (var i=1;i<sd.length;i++) {//skip header
    for(var j=0;j<sd[i].length;i++) {
      if (sd[i][j]=='GOLD'); {
        ss.appendRow(sd[i]);
      }
    }
  }
}

sheet.appendRow

range.getValues