Google表格将行复制并粘贴到另一张表格中,然后从第一张表格中删除内容

时间:2016-11-23 20:25:09

标签: google-apps-script google-sheets copy clear

我有2张相同数量的列,所有列都有相同的标题。当项目“准备就绪”时,我希望能够在该行的数据验证中选择“就绪”,并将该行复制到“项目”工作表并从“预测项目”表中删除该行。我希望如果只能从预测表上复制的行中擦除内容,那么其下面的所有其他行都可以向上移动。

原样,脚本将从预测的项目表中复制“就绪”作业,并将其粘贴到最后一个非空行的项目表中。但是,它似乎不想清除预测表中的内容。我希望在清除所有项目之后立即更新所有项目的附加功能。

function onEdit(e) {     //Move forecasted project to Projects
  if (e.value === 'Ready') {
    var sheet = e.range.getSheet();
    if (sheet.getSheetName() == 'Projects Forecast') {    // Name of the sheet with the forecasted projects
      logSheet = e.source.getSheetByName('Projects');   // Name of the Projects sheet
      var row = e.range.getRow(); 
      var lastRow = logSheet.getLastRow();
      var range = sheet.getRange(row, 1, 1, sheet.getLastColumn()); 
      range.copyTo(logSheet.getRange(lastRow + 1, 1),{contentsOnly:true});
      sheet.clearContents(row);
    }
  }
}

1 个答案:

答案 0 :(得分:1)

要清除内容,请用

替换sheet.clearContents(row)
range.clearContent();

但是,我建议你只需用

替换sheet.clearContents(row)来删除该行
sheet.deleteRow(row);

然后如果你真的想要相同数量的行,你可以插入一行

sheet.insertRowsAfter(sheet.getMaxRows(), 1);

应该保留工作表最后一行的格式。