复制粘贴脚本 你好,我正在使用我在这里找到的脚本,我对脚本编写一无所知,所以如果我太厚重,请原谅我。该脚本从 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 中有公式,它将跳过该行并进入下一个空闲行
尝试以下任一方法:
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]);
}