【发布时间】:2021-03-22 00:42:54
【问题描述】:
function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var r = ss.getActiveRange();
var rows = r.getRow();
var cell = s.getRange(rows, r.getColumn());
if (s.getName() == "Sheet" && r.getColumn() == 2 && cell.getValue() == "Archive" || cell.getValue() == "Cancel" || cell.getValue() == "Canceled" || cell.getValue() == "Cancelled") { // "Sheet" is original sheet, 2 is column to search for trigger
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Sheet Archive"); // "Sheet Archive" is the 2nd/target sheet
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(rows, 1, 1, numColumns).moveTo(target);
s.deleteRow(rows);
Logger.log(target);
}
我想要一种将一行数据从工作表(工作表)发送到另一个工作表(工作表存档)的方法。如果“存档”写在一行的第 2 列,它会将数据发送到存档表。
我希望数据逐行堆叠。假设我在工作表 #1 中存档第 20 行,我希望它将数据发送到第 9 行。如果我归档第 21、22 行,然后是 30、31 等,它应该将归档的行一个接一个地堆叠,所以在归档的第 9、10、11、12、13 等行中。
我曾经使用过的代码,但后来我重新设计了工作表,但它们停止了工作。当我键入存档时,它会从工作表 #1 中删除它,但随后在存档工作表中它会丢失。所以它正在“发送”它,但它没有正确显示或粘贴它。有没有更好的办法?
谢谢
【问题讨论】:
标签: javascript google-apps-script google-sheets google-api