根据不同名称的下拉值将行移动到新选项卡

问题描述 投票:0回答:1

是否有人有代码可以在更改下拉菜单时将谷歌表格中的行移动到不同的选项卡?我尝试了在 YouTube 上找到的代码,但只工作了 2 次,然后就停止工作了。我需要处理>入职,活动>驱动程序列表,终止>非活动。

我只希望将 6 个单元移至驾驶员列表,并将 27 个单元从驾驶员列表移至终止。

enter image description here 函数 myFunction() { 函数 onEdit(e){ 让 r = e.range; if (r.columnStart != 1 || r.rowStart == 1 || e.value == null) return; const sh = SpreadsheetApp.getActive(); const valArray = ["处理中","活动"]; const destArray = ["Onboarding","驱动程序列表"]; let dest = sh.getSheetByName(destArray[valArray.indexOf(e.value)]);让 src = sh.getActiveSheet(); if (dest.getName() == src.getName()) return; src.getRange(r.rowStart,1,1,1).moveTo(dest.getRange(dest.getLastRow()+1,1,1,6)); src.deleteRow(r.rowStart); }

} 函数 myFunction() { 函数 onEdit(e){ 让 r = e.range; if (r.columnStart != 1 || r.rowStart == 1 || e.value == null) return; const sh = SpreadsheetApp.getActive(); const valArray = ["终止"]; const destArray = ["非活动"]; let dest = sh.getSheetByName(destArray[valArray.indexOf(e.value)]);让 src = sh.getActiveSheet(); if (dest.getName() == src.getName()) return; src.getRange(r.rowStart,1,1,1).moveTo(dest.getRange(dest.getLastRow()+1,1,1,27)); src.deleteRow(r.rowStart); }

google-sheets google-apps-script
1个回答
0
投票

试试这个:

function onEdit(e) {
  const sh = e.range.getSheet();
  if (e.range.columnStart == 1 && e.range.rowStart > 6 && e.value) {
    let des = { "Processing": "Onbording", "Active": "Driver List" }
    let dest = sh.getSheetByName(des[e.value]);
    let src = sh.getActiveSheet();
    if (dest) {
      src.getRange(e.range.rowStart, 1, 1, 6).moveTo(dest.getRange(dest.getLastRow() + 1, 1));
      src.deleteRow(e.range.rowStart);
    }
  }
}

它仅适用于用户编辑

© www.soinside.com 2019 - 2024. All rights reserved.