从远程 onedit 可安装触发器访问其他谷歌电子表格

Posted

技术标签:

【中文标题】从远程 onedit 可安装触发器访问其他谷歌电子表格【英文标题】:accessing other google spreadsheet from a remote onedit installable trigger 【发布时间】:2021-06-17 16:55:56 【问题描述】:

我有一个谷歌脚本(绑定到工作表),我在其中放置了用于操作其他“远程”工作表的代码。 通过这种方式,我可以避免这些表格的其他编辑者访问我的代码。 我需要在这些远程工作表中执行的所有操作都是通过更改远程工作表中单元格的值(不受其他编辑器保护的单元格)以及从我的帐户和脚本(在每个远程sheet)我可以读取这个值,检测工作表并在远程工作表中执行操作。

所有这些都工作正常,但是当我需要访问其他外部工作表中的一些数据时,我发现了一个问题。 我尝试使用 SpreadsheetApp.openById(Sheet_ID) 打开这个外部工作表,但它没有说没有函数/属性

有什么解决方案可以解决这个问题或其他方法吗?

*** Act 19-06-21:现在运行良好。使用工作表的 ID 是我的错。感谢您的帮助!

【问题讨论】:

您是否尝试使用可安装的 onEdit 触发器? 正如我所说的,它是一个可安装的 onEdit 触发器 【参考方案1】:

我用过这个,它对我有用:

function onMyEdit(e) 
  const tss = SpreadsheetApp.openById(gobj.globals.testsourceid);
  tss.getSheetByName('Sheet1').getRange('A1').setValue('Hello World');

gobj.globals.testsourceid 只是另一个电子表格 id 的全局变量

【讨论】:

它对我不起作用。我收到错误“无法在对象 SpreadsheetApp 中获取方法或属性 openById”。我想这是因为执行来自远程工作表,而不是来自脚本所在的工作表。 我会尝试将提取物...放在 cmets 或哪里? 有问题的帖子 欢迎来到 ***,请借此机会参加 tour 并学习如何使用 How to Ask、format code、minimal reproducible example 和 Learn More 已解决。非常感谢

以上是关于从远程 onedit 可安装触发器访问其他谷歌电子表格的主要内容,如果未能解决你的问题,请参考以下文章

当 Zapier 添加一行时,Google Apps 脚本 onEdit 触发器未触发 [重复]

插入新行时在谷歌电子表格上触发脚本

使用修改后的日期自动更新谷歌电子表格

在 Google Apps 脚本中从另一个电子表格编辑一个电子表格

删除旧数据的宏

jenkins的触发远程构建时403或需要登录问题