2016-11-23 33 views
1

我有两个具有相同列数的工作表,并且所有列都具有相同的标题。当项目“准备就绪”时,我希望能够在该行的数据验证中选择“就绪”,并将该行复制到“项目”工作表中,并从“预测的项目”工作表中删除该行。我宁愿如果内容只能从预测表上复制的行擦除,然后其他所有具有内容的行可以向上移动。Google表格将行复制并粘贴到另一个工作表中,然后删除第一个工作表中的内容

现在,脚本会从预测的项目表中复制“就绪”作业,并将其粘贴到最后一个非空行的项目表中。但是,它似乎不想清除预测表单中的内容。我希望在清除准备好的项目后立即移动所有项目。

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

要清除的内容与

range.clearContent(); 

更换sheet.clearContents(行),但我可以建议你简单地用更换sheet.clearContents(行)删除行

sheet.deleteRow(row); 

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

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

它应该保留表单最后一行的格式。

相关问题