使用有效的"下面的代码",我需要添加另一个函数,如果选中复选框,该函数只移动单元格A和整行中的数据



使用下面的代码,我需要添加另一个函数,该函数可以完成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);
}
}
}

要实现目标,可以用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;
}
}
}

前面的代码将与您的原始代码一样工作,但如果有任何疑问,请随时评论我的答案。

最新更新