Function GoogleSheets脚本:基于下拉菜单移动行并按日期自动排序
我正在GoogleSheets()中创建一个团队任务跟踪器,其中包含任务名称、通过下拉菜单显示的任务状态(新建、进行中、完成等)、截止日期和任务注释。有一个包含所有新任务的选项卡,一个用于进行中任务、已完成任务等的选项卡。当下拉状态被选择为“新建”以外的任何状态时,我希望任务数据的行从新选项卡移动到相应的选项卡,并且我希望任务数据的每个选项卡按到期日期排序。我能够独立完成这两件事,但我无法让他们一起工作Function GoogleSheets脚本:基于下拉菜单移动行并按日期自动排序,function,sorting,google-apps-script,google-sheets,scripting,Function,Sorting,Google Apps Script,Google Sheets,Scripting,我正在GoogleSheets()中创建一个团队任务跟踪器,其中包含任务名称、通过下拉菜单显示的任务状态(新建、进行中、完成等)、截止日期和任务注释。有一个包含所有新任务的选项卡,一个用于进行中任务、已完成任务等的选项卡。当下拉状态被选择为“新建”以外的任何状态时,我希望任务数据的行从新选项卡移动到相应的选项卡,并且我希望任务数据的每个选项卡按到期日期排序。我能够独立完成这两件事,但我无法让他们一起工作 根据所选状态(下拉项:新建、进行中、完成等),将数据行移动到工作表中的相应选项卡。为此,我使
function onEdit(e) {
const src = e.source.getActiveSheet();
const r = e.range;
if (r.columnStart != 2 || r.rowStart == 1 || e.value == src.getName()) return;
const dest = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(e.value);
src.getRange(r.rowStart,1,1,5).moveTo(dest.getRange(dest.getLastRow()+1,1,1,5));
}
function onEdit(e) {
const src = e.source.getActiveSheet();
const r = e.range;
if (r.columnStart != 2 || r.rowStart == 1 || e.value == src.getName()) return;
const dest = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(e.value);
src.getRange(r.rowStart,1,1,5).moveTo(dest.getRange(dest.getLastRow()+1,1,1,5));
src.deleteRow(r.rowStart);
dest.getDataRange().offset(1, 0).sort({column: 4, ascending: true});
}
示例:
输出:
参考:
如果你在这个问题中张贴了足够的信息,这样我就不用看你的电子表格了,然后我会回答这个问题。
function onEdit(e) {
const src = e.source.getActiveSheet();
const r = e.range;
if (r.columnStart != 2 || r.rowStart == 1 || e.value == src.getName()) return;
const dest = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(e.value);
src.getRange(r.rowStart,1,1,5).moveTo(dest.getRange(dest.getLastRow()+1,1,1,5));
src.deleteRow(r.rowStart);
dest.getDataRange().offset(1, 0).sort({column: 4, ascending: true});
}