[英]Move a range of cells from a row to another google sheet and delete it
I got the following code working but not as I would like to.我得到了以下代码,但不是我想要的。
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "Listed" && r.getColumn() == 21 && r.getValue() == "yes") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Sold");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
I have 2 sheets, one for Items listed, and one for items sold.我有 2 张纸,一张用于列出的物品,一张用于出售的物品。 I need to delete a row in "Listed" when the column 21 says "yes" and paste it in my "Sold" sheet.
当第 21 列说“是”时,我需要删除“已上市”中的一行并将其粘贴到我的“已售”表中。
Is there a way to copy and paste only a range of cells from "Listed" to "Sold" but to delete the whole row ?有没有办法只复制和粘贴从“已上市”到“已售”的单元格范围,但要删除整行?
const numColumns = 10
to your needs.const numColumns = 10
。function onEdit(e) {
const ss = e.source;
const s = e.source.getActiveSheet();
const row = e.range.getRow();
const col = e.range.getColumn();
const targetSheet = ss.getSheetByName("Sold");
const numColumns = 10;
if(s.getName() == "Listed" && col == 21 && e.range.getValue() == "yes") {
const s_range = s.getRange(row,1,1,numColumns);
const s_values = s_range.getValues();
s.deleteRow(row);
targetSheet.getRange(targetSheet.getLastRow() + 1, 1,s_values.length,s_values[0].length).setValues(s_values);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.