首页 > 解决方案 > 谷歌表格,将一行移动到另一张表格

问题描述

我是 Google 表格的新手。我正在尝试为我的公司制作电子表格。当我单击复选框时,它将整行移动到另一张纸上。我写了这段代码,但它有时有效,有时无效。有人会帮助我吗?

这是代码

function onEdit(e) {
  const src = e.source.getActiveSheet();
  const r = e.range;
  if (src.getName() != "Teklifler" || r.columnStart != 11 || r.rowStart == 1) return;
  const dest = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Onaylanan");
  src.getRange(r.rowStart,1,1,15).moveTo(dest.getRange(dest.getLastRow()+1,1,1,15));
  src.deleteRow(r.rowStart);
    if (src.getName() != "Onaylanan" || r.columnStart != 15 || r.rowStart == 1) return;
  const desti = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tamamlanan");
  src.getRange(r.rowStart,1,1,15).moveTo(desti.getRange(desti.getLastRow()+1,1,1,15));
  src.deleteRow(r.rowStart);

}

这是电子表格

https://docs.google.com/spreadsheets/d/1CxWCSNivWhXTQSpqlriMjapg1NssSfSEvbm8-Ay_a3A/edit?usp=sharing

感谢您的帮助

标签: google-apps-scriptgoogle-sheetsspreadsheet

解决方案


如果您选中一个复选框,我认为您想移动该行

  • “Teklifler 表中的“Onaylandı”列

  • “Onaylanan 表中的“Tamamlandı”列。

尝试这个。

function onEdit(e) {
  const src = SpreadsheetApp.getActiveSheet();
  const r = e.range;

  if (src.getName() == "Teklifler" && r.columnStart == 11 && r.isChecked()) {
    const dest = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Onaylanan");
    src.getRange(r.rowStart, 1, 1, 15).moveTo(dest.getRange(dest.getLastRow() + 1, 1, 1, 15));
    src.deleteRow(r.rowStart);
  }
  
  if (src.getName() == "Onaylanan" && r.columnStart == 15 && r.isChecked()) {
    const dest2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tamamlanan");
    src.getRange(r.rowStart, 1, 1, 15).moveTo(dest2.getRange(dest2.getLastRow() + 1, 1, 1, 15));
    src.deleteRow(r.rowStart);
  }

}

推荐阅读