需要从生成的表单中移动行 sheet
Need to move rows from form generated sheet
我有一项调查 sheet,我需要我的团队查看一次,但之后我希望我的团队将行设置为“已关闭”以存档 sheet。过去,对于其他 sheet,我使用过此脚本,但它似乎不适用于链接 sheet 的表单。经过研究,我发现您无法从链接 sheet 的表单中剪切,但您可以删除行,我的理论是脚本正在尝试剪切,这就是为什么不起作用的原因。 “复制”和删除方法是什么?
function onEdit(event) {
// assumes source data in sheet named Needed
// target sheet of move to named Acquired
// test column with yes/no is col 4 or D
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
var sheets = ["Form Responses", "Input"];
if(sheets.includes(s.getName()) && r.getColumn() == 1 && r.getValue() == "Closed / Move to Archive") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Archive");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
非常感谢任何帮助
function onEdit(e) {
var sh = e.range.getSheet();
var sheets = ["Form Responses", "Input"];
if(sheets.includes(sh.getName()) && e.range.columnStart == 4 && e.value == "Closed") {
var tsh = e.source.getSheetByName("Archive");
var tgt = tsh.getRange(tsh.getLastRow() + 1, 1);
sh.getRange(e.range.rowStart, 1, 1, sh.getLastColumn()).copyTo(tgt);
sh.deleteRow(e.range.rowStart);
}
}
我的表单回复Sheet:
存档Sheet:
正如我想象的那样,问题是
moveTo(target)
我改成了
copyTo(target)
现在可以正常使用了
我有一项调查 sheet,我需要我的团队查看一次,但之后我希望我的团队将行设置为“已关闭”以存档 sheet。过去,对于其他 sheet,我使用过此脚本,但它似乎不适用于链接 sheet 的表单。经过研究,我发现您无法从链接 sheet 的表单中剪切,但您可以删除行,我的理论是脚本正在尝试剪切,这就是为什么不起作用的原因。 “复制”和删除方法是什么?
function onEdit(event) {
// assumes source data in sheet named Needed
// target sheet of move to named Acquired
// test column with yes/no is col 4 or D
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
var sheets = ["Form Responses", "Input"];
if(sheets.includes(s.getName()) && r.getColumn() == 1 && r.getValue() == "Closed / Move to Archive") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Archive");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
非常感谢任何帮助
function onEdit(e) {
var sh = e.range.getSheet();
var sheets = ["Form Responses", "Input"];
if(sheets.includes(sh.getName()) && e.range.columnStart == 4 && e.value == "Closed") {
var tsh = e.source.getSheetByName("Archive");
var tgt = tsh.getRange(tsh.getLastRow() + 1, 1);
sh.getRange(e.range.rowStart, 1, 1, sh.getLastColumn()).copyTo(tgt);
sh.deleteRow(e.range.rowStart);
}
}
我的表单回复Sheet:
存档Sheet:
正如我想象的那样,问题是
moveTo(target)
我改成了
copyTo(target)
现在可以正常使用了