google-apps-script - 如何将基于单元格值的行移动到其他工作表?
问题描述
我有下面的脚本,它只适用于第一个条件。我可以切换条件顺序,然后顶部的将起作用,但底部的不起作用。任何想法为什么?
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "Master" && r.getColumn() == 16 && r.getValue() == "Yes") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Complete");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "Master" && r.getColumn() == 16 && r.getValue() == "No") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Late");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
解决方案
脚本项目中只能有一个活动的onEdit(e)
简单触发器。要根据两组条件移动行,您需要将这两个函数合二为一。
我建议您使用久经考验的解决方案,例如moveRowsFromSpreadsheetToSpreadsheet_脚本。代码将近 800 行,因此在这里引用是不切实际的,但使用参数部分进行配置很简单。
推荐阅读
- r - 安装 R 3.5 软件包时 rcpp 编译错误(ubuntu 16.04)
- python - AWS 提取卷 AttachmentID Boto3
- python - pexpect sendline 太慢了
- python - Python:在曲线和轴之间填充颜色并区域化区域
- python - 在python中清除基于文本的rpg屏幕
- spring-boot - 如何在 Spring Boot 中使用 Spring Security 启用 CORS
- pandas - 查看客户是否在每个季度都有购买,然后绘制图表
- sql-server - EF Core“无法在具有唯一索引 [index] 的对象 'dbo.[table name]' 中插入重复的键行
- python - 如果文件不存在则创建一个文件,否则什么也不做
- java - 静态方法中的有界类型参数