【发布时间】:2021-06-09 19:10:15
【问题描述】:
Google 表格示例文件: https://docs.google.com/spreadsheets/d/18xd8sEpm95-sGoawg9gjKfoIqmM0blmuMYooeAPhXPY/edit?usp=sharing
这是我当前的代码:
function onEdit(e) {
var sh=e.range.getSheet();
var completionColumn=1;
var topRow=2;
var editSheet='Sheet1';
if(sh.getName()!=editSheet)return;//return if not correct sheet
if(e.range.columnStart==completionColumn && e.range.rowStart==topRow) {
sh.insertRowBefore(topRow);
//sh.getRange('D3').copyTo(sh.getRange('D2'), SpreadsheetApp.CopyPasteType.PASTE_FORMULA, false);
sh.getRange('3:3').copyTo(sh.getRange('2:2'), SpreadsheetApp.CopyPasteType.PASTE_FORMULA, false);
}
}
每当编辑当前第 2 行的 A 列时,该脚本都会在第 2 行添加一个新行。 我要添加的脚本的下一个功能是将当前第 2 行中的所有公式复制到新的第 2 行。
当我尝试只复制特定的单元格时,它会成功,因为我只复制带有我当前代码示例中的公式的单元格:
sh.getRange('D3').copyTo(sh.getRange('D2'), SpreadsheetApp.CopyPasteType.PASTE_FORMULA, false);
但是当我尝试将它用于整行时,即使我使用 PASTE_FORMULA 而不是 PASTE_NORMAL 或其他 CopyPasteTypes,它也会复制值:
sh.getRange('3:3').copyTo(sh.getRange('2:2'), SpreadsheetApp.CopyPasteType.PASTE_FORMULA, false);
如何防止行中的非公式值复制到新添加的行?
【问题讨论】:
标签: javascript google-apps-script google-sheets