使用下面的代码,我需要添加另一个函数,该函数执行else if语句所做的所有操作,而不是将整行数据移动到另一个工作表中,我只需要从单元格A移动数据。
我还需要添加一个函数,如果复选框被选中,该函数将移动整行数据。
function onEdit(e) {
if (e.value === 'COMPLETED FAB') {
var sheet = e.range.getSheet();
if (sheet.getSheetName() == 'Fabrication') {
logSheet = e.source.getSheetByName('Fabrication Completed');
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));
sheet.deleteRow(row);
}
}
else if (e.value === 'FINISHED') {
var sheet = e.range.getSheet();
if (sheet.getSheetName() == 'Service') {
logSheet = e.source.getSheetByName('Service Completed');
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));
sheet.deleteRow(row);
}
}
else if (e.value === 'SURV COMP') {
var sheet = e.range.getSheet();
if (sheet.getSheetName() == 'Surveys') {
logSheet = e.source.getSheetByName('Surveys Completed');
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));
sheet.deleteRow(row);
}
}
}发布于 2020-03-26 17:23:17
为了实现您的目标,您可以用switch场景替换if…else逻辑。最终结果如下所示:
function onEdit(e) {
switch (e.value) {
case 'COMPLETED FAB':
var sheet = e.range.getSheet();
if (sheet.getSheetName() == 'Fabrication') {
logSheet = e.source.getSheetByName('Fabrication Completed');
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));
sheet.deleteRow(row);
}
break;
case 'FINISHED':
var sheet = e.range.getSheet();
if (sheet.getSheetName() == 'Service') {
logSheet = e.source.getSheetByName('Service Completed');
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));
sheet.deleteRow(row);
}
break;
case 'SURV COMP': {
var sheet = e.range.getSheet();
if (sheet.getSheetName() == 'Surveys') {
logSheet = e.source.getSheetByName('Surveys Completed');
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));
sheet.deleteRow(row);
}
break;
}
}
}前面的代码将像您的原始代码一样工作,但如果有任何疑问,请不要犹豫地评论我的回答。
https://stackoverflow.com/questions/60856158
复制相似问题