【发布时间】:2021-02-16 16:30:47
【问题描述】:
我遇到了这个脚本,它根据特定列中的值将行从一个选项卡移动到另一个选项卡。它运行良好,但这只能在单个选项卡上运行。此脚本是否可以在多个选项卡上运行并将记录仅移动到特定选项卡?
例如,这里是要查看的标签列表:
- AAA
- BBB
- CCC
- DDD
- EEE
- 等等……
当N列中的值(包含=IF formula,根据条件集确定值)更改为Completed时,脚本会自动将该行复制到DONE表并然后删除该行。
我不确定onEdit() 是否有效。
注意:所有选项卡都是相同的。
这是我在论坛中找到的脚本:
function onEdit() {
var app = SpreadsheetApp;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetNameToWatch = ss.getSheetByName("Current")
var columnNumberToWatch = 8;
var valueToWatch = "DONE";
var sheetNameToMoveTheRowTo = "OLD";
//var ss = SpreadsheetApp.getActiveSpreadsheet();//this has already been declared
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveCell();
if (sheet.getName() == "Current" && range.getColumn() == 8 && range
.getValue() == "DONE") {
var targetSheet = ss.getSheetByName("OLD");
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(
targetRange);
sheet.deleteRow(range.getRow());
}
}
【问题讨论】:
-
欢迎来到Stack Overflow。
onEdit在编辑任何工作表(选项卡)时触发。请展示您尝试使脚本适应您的需求。 -
我现在实际上正在使用脚本,除了它只在单个选项卡上运行之外,整个脚本。我应该如何修改脚本,以便它可以在我的所有选项卡上运行,除了 DONE 选项卡?
-
删除
sheet.getName() == "Current" && -
另外,我忘了告诉你,被监视的列有一个公式,当满足某些条件时,它会自动变为“已完成”。我不确定 onEdit() 是否是正确的函数。
-
请编辑问题以添加所有相关详细信息。
标签: google-apps-script google-sheets triggers