【问题标题】:Google Script COPY and PASTE谷歌脚本复制和粘贴
【发布时间】:2021-08-31 10:52:28
【问题描述】:
我正在尝试将多个单元格值复制并粘贴到工作表上的另一个单元格中。基本上,如果我编辑单元格“AM13”,它应该将它的旧值复制到“C23”。这部分工作正常,但另一个单元格“N12”没有复制和粘贴到单元格“C25”上。
这是我现在的代码:
function onEdit(e) {
if (e.range.getA1Notation() === 'AM13') {
var wspaste = e.source.getRange('Sheet1!C24');
var wspaste2 = e.source.getA1Notation().getRange('Sheet1!N12');
var wspaste3 = e.source.getActiveSheet().getRange('Sheet1!N12').getValue();
var OLDVALUE;
OLDVALUE = e.oldValue;
wspaste.setValue(OLDVALUE);
wspaste2.setValue(wspaste3);
}
}
Here's我的工作表的副本!
感谢您的帮助!
【问题讨论】:
标签:
google-apps-script
google-sheets
【解决方案1】:
您正在使用合并的单元格。这使得您很难判断您想从何处获取值以及从何处获取值。
可能你需要这样的东西:
function onEdit(e) {
if (e.range.getA1Notation() === 'AM13') {
e.source.getActiveSheet().getRange('Sheet1!C24').setValue(e.oldValue);
var value = e.source.getActiveSheet().getRange('Sheet1!N13').getValue();
e.source.getActiveSheet().getRange('Sheet1!C25').setValue(value);
}
}
调试onEdit() 函数我习惯使用SpreadsheetApp.getActiveSpreadsheet().toast(value),其中value 是您要检查的任何值。它的工作方式几乎类似于 console.log() 或 Logger.log()
例如显示e.range.getA1Notation()的内容:
SpreadsheetApp.getActiveSpreadsheet().toast(e.range.getA1Notation())
它会在右下角显示带有值的窗口: