我有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);
}
}
}
答案 0 :(得分:1)
要清除内容,请用
替换sheet.clearContents(row)range.clearContent();
但是,我建议你只需用
替换sheet.clearContents(row)来删除该行sheet.deleteRow(row);
然后如果你真的想要相同数量的行,你可以插入一行
sheet.insertRowsAfter(sheet.getMaxRows(), 1);
应该保留工作表最后一行的格式。