google-apps-script - 谷歌表格,将一行移动到另一张表格
问题描述
我是 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
感谢您的帮助
解决方案
如果您选中一个复选框,我认为您想移动该行
“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);
}
}
推荐阅读
- wordpress - PHP 致命错误:未捕获的错误:在新的 wordpress 安装中调用未定义的函数 wp_kses_normalize_entities()
- javascript - 在 Meteor 中的 React 中忽略 event.preventDefault()
- python - 尝试从类的函数中打印变量时出现 python 错误
- c++ - Win32半透明窗口
- excel - Excel循环遍历第1行中的所有填充单元格
- html - CSS - 右侧的标题间距不等于左侧的间距
- python - 如何正确实现矩阵乘法和
- html - 为什么只使用相对和静态的位置值与浮点数一起工作?
- html - Flexbox 通过滚动条的确切宽度溢出主体
- java - Spring:GCP 和 JPA - 缺少 EntityManagerFactory