脚本APP - 由通过Google表单提交的值触发的功能

问题描述 投票:0回答:1

我要强调的是,我不是脚本编写者,并试图为朋友写一些简单的东西,但我已经碰壁了。

我已经编写了一个脚本,该脚本根据 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 表单触发的第二列定义的值的选项卡。

Update with example how i want to move the row

forms function triggers move
1个回答
0
投票

从您的以下回复来看,

我希望将从 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);
}
  • 当 OnSubmit 触发器运行此脚本时,通过从“B”列的值检索工作表名称,将提交的行复制到工作表。
© www.soinside.com 2019 - 2024. All rights reserved.