Google 表格 - 表单 - 脚本

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

复制粘贴脚本 你好,我正在使用我在这里找到的脚本,我对脚本编写一无所知,所以如果我太厚重,请原谅我。该脚本从 Google Sheets Form Responses 1 复制到 Responses 并在每次提交表单时插入到 K 列中,效果很好。

但是,我在 A-J 列中有公式,并且脚本不会传递到这些行中,因为它们不是空白 - 是否可以更改脚本,以便它会忽略 A-J 列中的任何内容 - 下面的脚本并链接到演示电子表格。

    function onSubmit(e) {
const range = e.range;
const srcSheet = range.getSheet();
const dstSheet = e.source.getSheetByName("Responses");
const srcRange = srcSheet.getRange(range.rowStart, 1, 1, srcSheet.getLastColumn());
const dstRange = dstSheet.getRange(dstSheet.getLastRow() + 1, 11);
srcRange.copyTo(dstRange, {contentOnly: true});

https://forms.gle/ijxiSnh6VE7eLm4i6

该脚本有效,但如果 A-J 中有公式,它将跳过该行并进入下一个空闲行

google-apps-script google-sheets automation scripting google-forms
1个回答
0
投票

尝试以下任一方法:

function onSubmit(e) {
  const srcSheet = e.range.getSheet();
  const dstSheet = e.source.getSheetByName("Responses");
  const vs = srcSheet.getRange(e.range.rowStart, 1, 1, srcSheet.getLastColumn()).getValues();
  dstSheet.getRange(dstSheet.getLastRow() + 1, 1, vs.length,vs[0].length).setValues(vs);
}
function onSubmit(e) {
  const dstSheet = e.source.getSheetByName("Responses");
  let o = e.values.slice();
  o.shift();//remove timestamp
  dstSheet.getRange(dstSheet.getLastRow() + 1, 1, 1 , o.length).setValues([o]);
}
© www.soinside.com 2019 - 2024. All rights reserved.