我有一份谷歌回应表。我每天晚上12点运行这个工作表。每当收到一些响应时,我想将该行附加到另一个工作表中,并在表单响应中删除相应的行。在这里,我想从表单响应中最早的时间戳开始添加,即从第二行开始,因为第一行是问题。每当我运行这段代码时,我成功地添加了行,但不能删除行。下面是我想要做的代码:
//** Copying the response to another Spreadsheet for roster management**//
 function copySheet(){
  var source = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = source.getSheetByName("Form Responses 1");
  var lastRow = sourceSheet.getLastRow();
  var getData = sourceSheet.getDataRange().getValues();
  var destSheet = source.getSheetByName("10017135ADC");
  Logger.log(lastRow);
   if(lastRow >1){
    for (var j =1; j<lastRow; j++) {
    //    Logger.log(j);
       var rowData = getData[j];
    //    Logger.log(rowData);
       destSheet.appendRow(rowData);
       sourceSheet.deleteRow(j);
    } 
  }
} 发布于 2021-03-24 11:22:29
试试这个:
 function copySheet(){
  var source = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = source.getSheetByName("Form Responses 1");
  var lastRow = sourceSheet.getLastRow();
  var getData = sourceSheet.getDataRange().getValues();
  var destSheet = source.getSheetByName("10017135ADC");
  Logger.log(lastRow);
  let d=0;//keep track of deleted rows 
   if(lastRow >1){
    for (var j =1; j<lastRow; j++) {
    //    Logger.log(j);
       var rowData = getData[j];
    //    Logger.log(rowData);
       destSheet.appendRow(rowData);
       sourceSheet.deleteRow(j-d++);
    } 
  }
} 发布于 2021-03-24 11:54:39
Cooper的新变量方法很好。但向上删除是一种更好的方法。
试试这样的东西
for (var i = getData.length - 1; i > 1; i--) {
  //anything you want to perform
  destSheet.appendRow(getData[i]);
  sheet.deleteRow(i);
}https://stackoverflow.com/questions/66773715
复制相似问题