我没有脚本经验,但在这里找到了以下内容,它几乎可以满足我的需求。
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, 1);
srcRange.copyTo(dstRange, {contentOnly: true});
} `
但我希望目标数据从 J 列开始,而不是 A
它可以工作,但会将数据复制到 A 列
您可以通过更改
.getRange()
函数中的第二个参数来指定要将数据粘贴到哪一列。这条线
const dstRange = dstSheet.getRange(dstSheet.getLastRow() + 1, 1);
然后看起来像这样
const dstRange = dstSheet.getRange(dstSheet.getLastRow() + 1, 10);
因为列也有数字,并且 J 等于 10,因为 A 是 1。
如果您想使用列的字母而不是数字,
.getRange()
函数还支持所谓的A1表示法:
const dstRange = dstSheet.getRange("J" + (dstSheet.getLastRow() + 1));
更多详细信息可以在官方 Apps Scipt 文档中找到。