google-apps-script - 如何使用 onEdit 事件返回已编辑单元格的范围?

标签 google-apps-script

这看起来应该很容易,但我似乎无法让我的任何小测试实现工作。最终目标是创建一个仅在编辑特定范围内的单元格时运行的函数。为了实现这一点,我创建了一个在每次编辑时运行的函数,但首先检查编辑单元格的范围是否在某个范围内,如果为真,则仅执行其余代码,否则,它只是立即结束。

在我看来,这样做的第一步是找出如何返回已编辑单元格的范围。我尝试了各种测试。

这是当前版本,我通过编辑电子表格进行测试:

function onEdit(e){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var eRange = e.range;
var message = eRange.getA1Notation();
ss.toast(message);
}

(输出:toast 没有出现/什么也没有发生)

我在这里发布了大约 10 个其他版本,但我意识到它没有帮助。

我已经设法在我的 toast 消息中返回 [object Object] 和 [undefined],所以我知道我的 toast 函数没有犯一些愚蠢的错误。

e.range 不返回一个范围吗?那是我出错的地方吗?如果它返回一个范围,我是否应该能够使用范围内的任何方法,就像我使用了类似“ss.getRange(“A1”).someMethod()”的方法一样?或者有什么我不明白的区别?

好的,我意识到我在这里问了几个不同的问题——我只是想更清楚地说明我的思考过程,以防它帮助你纠正我的错误。一个简单的问题是:我可以使用什么样的命令或方法来返回已编辑单元格的范围?

很抱歉问这么基本的问题。我真的很害怕有人会输入正确的搜索词组合,而答案会出现在结果的顶部......但我似乎无法自己找到它,所以我来了。我已经尝试了 StackOverflow 和旧的 Google Groups 支持论坛中的大量代码片段,以及我自己的很多尝试。我看到人们在这里问了很多关于我的最终目标的类似问题——只有在编辑特定范围内的单元格时才运行 onEdit 函数——但答案都更复杂,似乎是针对每种情况量身定制的,但他们没有不适合我的。我确信答案就在那里,但我现在已经连续三个晚上都在寻找,发现有很多类似的问题被问到,但似乎无法让我自己实现这些建议。感谢您对我的耐心,非常感谢您提供的任何答案!

最佳答案

这是采用的代码(并稍作修改)from the doc :

function onEdit(event){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
  r.setComment("Last modified: " + (new Date())+' by '+Session.getActiveUser());
  ss.toast('Last cell modified = '+r.getA1Notation()+' by '+Session.getActiveUser());
}

关于google-apps-script - 如何使用 onEdit 事件返回已编辑单元格的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12995262/

相关文章:

javascript - 有没有办法将 Google 电子表格保存为数据库中的 blob,然后在应用程序脚本期间将该 blob 作为电子表格打开

javascript - 使用 Google Apps Script 从 Google Slides 演示文稿中提取所有 URL 链接

javascript - 使用 find Text() 多次出现时的额外匹配

javascript - 如何将行范围合并为 json 格式?

google-apps-script - 谷歌表格: Batch getRangeByName via Apps Script

javascript - 使用 Google Apps 脚本插入方括号和引号

google-apps-script - 如何在 Google Apps 脚本中转置和拆分?

javascript - 正在寻找一种使用 Google Apps 脚本或 DOCS API 向 Google 文档中的段落添加边框的方法?

google-apps-script - 是否可以使用 Google Apps 脚本创建 Gmail 标签并选择其颜色?

javascript - 在 Apps 脚本和 Google Sheets 中使用 ImportHTML 进行数据抓取