【发布时间】:2020-10-18 13:25:14
【问题描述】:
当数据添加到“I”列时,我有一个脚本可以将数据从一个工作表移动到另一个工作表。
我想调整脚本以执行将所有行(值)从“未付费”表(其中 I 列不为空)移动到已付费表的操作,方法是按下按钮而不是“编辑时” .这将允许一次从多行移动数据,而不是使用一次只移动一行的当前脚本。
有人可以帮忙吗?
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "Unpaid" && r.getColumn() == 9 && r.getValue() != "") {
var row = r.getRow();
var numColumns = 11;
var targetSheet = ss.getSheetByName("Paid");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).copyTo((target),{contentsOnly:true});
s.deleteRow(row);
}
else if(s.getName() == "Paid" && r.getColumn() == 14 && r.getValue() == false) {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Unpaid");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
旁注,脚本的“else if”部分旨在将代码移回原始工作表。这不是必需的,但我无法删除那部分代码并维护功能。
【问题讨论】:
-
我明白了,我猜是这两件事。 1)我想传输所有行(范围=与上述代码中相同的列),其中列 I 不为空,2)使用按钮来执行此操作。
标签: javascript google-apps-script google-sheets