我要强调的是,我不是脚本编写者,并试图为朋友写一些简单的东西,但我已经碰壁了。
我已经编写了一个脚本,该脚本根据 Col 的值将行移动到另一张表。
这与
onEdit (e)
完美配合 - 用户需要将值添加到单元格。
我正在寻找稍微不同的东西,它是相同/相似的代码,但会将行移动到工作表 - 在代码中预定义或基于单元格值,但由 Google 表单触发。
有什么解决方案吗,因为我不知道该尝试什么。任何帮助将不胜感激
这是我的代码,它与函数
onEdit(e)
完美配合 - 用户输入到第二列,其中 IN/OUT
function onEdit(e){
let range = e.range;
let col = range.getColumn();
let row = range.getRow();
let val = range.getValue();
let source = e.source.getActiveSheet();
if (col == 7 && val != ''){
let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheetByName(source.getName());
let targetSheet = ss.getSheetByName(val);
let data = sheet.getRange(row,1,1,sheet.getLastColumn()).getValues();
targetSheet.appendRow(data[0]);
sheet.deleteRow(row);
}
}
谢谢
将行从响应移动到由 Google 表单触发的第二列定义的值的选项卡。
从您的以下回复来看,
我希望将从 Google 表单填充的行移动到另一行,而无需任何人工交互。基于第二列 IN / OUT 的值 - 如果标记为 IN,则整行将移动到 IN 工作表,如果标记为 OUT,则整行将移动到 OUT 工作表。由于我的脚本基于 onEdit,因此需要人工交互才能工作。有没有什么解决方案可以在没有人际互动的情况下完成?
下面的示例脚本怎么样?
请将以下脚本复制并粘贴到链接到您的 Google 表单的 Google 电子表格的脚本编辑器中。并且,保存脚本。并且,请安装 OnSubmit 触发器到
onSubmit
。
当您运行此脚本时,请提交您的 Google 表单。这样,脚本就会由 OnSubmit 触发器自动运行。
function onSubmit(e) {
const sheetName = e.values[1];
if (!sheetName) {
console.log("No sheet name.");
return;
}
const sheet = e.source.getSheetByName(sheetName);
if (!sheet) {
console.log("No sheet.");
return;
}
sheet.appendRow(e.values);
}