google-apps-script - 谷歌脚本复制和粘贴
问题描述
我试图将多个单元格值复制并粘贴到工作表上的另一个单元格。基本上,如果我编辑单元格“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);
}
}
这是我的工作表的副本!
谢谢您的帮助!
解决方案
您正在使用合并的单元格。这使得很难判断你想从哪里获得价值以及从哪里获得价值。
可能你需要这样的东西:
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)
wherevalue
是您要检查的任何值。它几乎像console.log()
或Logger.log()
例如显示内容e.range.getA1Notation()
:
SpreadsheetApp.getActiveSpreadsheet().toast(e.range.getA1Notation())
它将在右下角显示带有值的窗口:
推荐阅读
- javascript - 在 API Excel Javascript 中操作电子表格和用户界面(小部件,..)?
- git - 命令 git checkout "." 是什么意思?做?
- python - 在python中比较2个字典的时间复杂度是多少
- reactjs - React Function Components - 跟随父组件状态
- php - 使用变量回显 html 的正确 php 代码
- python - 使用 python 的词袋模型
- java - spring-retry Retryble 注释与 retryTemplate
- amazon-web-services - 如何通过 Haproxy 连接 Neptune?
- python - 如何使用 Python 从手写的扫描 PDF 中提取数据?
- android - Kotlin lateInit 尚未初始化错误崩溃应用程序