我有一个谷歌应用程序脚本,需要返回对电子表格所做的更改,并返回到slack。每当在文件上的电子表格内进行复制粘贴时,脚本就会失败(要么将多行或多列复制在一起,要么将单个条目复制在一起),两者都无法工作。这是我当前的脚本:——
**var url ="Slack Webhook URL";
function sendSlackNotification(e) {
var newValue = e.value;
var oldValue = e.oldValue;
var user = e.user;
var row = e.range.getRow();
var spreadsheetName = SpreadsheetApp.getActiveSheet().getName();
var payload = {
'text' : user + " just changed from oldValue : '" + oldValue + "' to newValue : '" + newValue + "' at row : '" + row + "' in the following Sheet : " + spreadsheetName +" :grimacing:"
};
var params = {
'method' : 'post',
'contentType' : 'application/json',
'payload' : JSON.stringify(payload)
};
return UrlFetchApp.fetch(url, params)
}**
在电子表格中执行onEdit功能时需要修复复制粘贴功能
当使用onEdit触发器时,value
和oldValue
只出现在单个单元格上;尝试在你的函数中添加Logger.log(JSON.stringify(e))
,并检查你的执行日志,看看事件对象的结构是什么样子的。
你很可能要修改你的功能来检查range.columnStart
/range.columnEnd
和range.rowStart
/range.rowEnd
是否相等,以确定它是一个正在编辑的范围还是一个单元格,并从那里取。