google-apps-script - 如何在谷歌电子表格中的多个(不同)电子表格之间共享相同的应用程序脚本
问题描述
首先,我花了 3 个小时阅读有关谷歌云、发布、项目等的文档。经过多次尝试,我意识到我遗漏了一些东西,所以这是我的问题。
我有两个电子表格,让我们称之为“价格”和“成本”。我想要实现的是它们共享相同的应用程序脚本,如果我更改一个脚本,因为它由两者共享,它将在几秒钟内自动更改。
所以我确实创建了一个应用程序脚本,它在一个单元格中返回一个字符串(只是为了简单起见)并将其命名为 STRINGFUNCTION(); 是在 PRICES 电子表格中创建的。我的目标是让它在 COSTS 文件中工作,而无需手动输入。我希望如果我单击资源 > 云平台项目并将两个电子表格中的两个应用程序脚本添加到同一个项目中,它将自动运行。好吧,它不会 - 如果我在 PRICES 中的单元格 =STRINGFUNCTION() 中写入它可以正常工作,并且在 COSTS 中 - 它表示该功能未知。
我怎样才能做到这一点,以便它在我的两个文件之间工作,如果它们都在同一个项目中,它们共享相同的功能?
解决方案
您一次只能将一个 Google Apps 脚本文件绑定到一个文档。Apps 脚本不允许您.gs
从另一个 Apps 脚本文件中编辑云上文件的内容,因为试图获取:
var data = DriveApp.getFileById('script-id').getAs('application/vnd.google-apps.script');
将返回错误:
No item with the given ID could be found, or you do not have permission to access it.
但是,您可以将脚本绑定到一个电子表格,例如说“成本”电子表格,并在电子表格中为“价格”创建第二张表,其中包含所有相关的函数调用。在单独的“价格”电子表格中,您可以使用内置IMPORTRANGE
公式从具有绑定脚本的第一个电子表格的“价格”范围中获取数据。
推荐阅读
- python-3.x - 有没有办法替换字符串中两个字符对之外的所有空格?
- reactjs - 在 mobx 商店中更改状态时,Ant-Design Table 不呈现
- javascript - 这是什么意思?JS 表达式值 = !1
- elasticsearch - 带有弹性搜索的真实单词拼写检查器
- go - 具有多个一对多关系的模型
- python - 使用 pyspark 将数组动态转换为列
- node.js - create-react-app 的 package.json 中的“代理”字段如何工作?
- flutter - Flutter:应用程序卡在加载屏幕上
- networking - 在 CLOSE-WAIT 状态下发送的数据包的 Ack 号是多少?
- machine-learning - 应用 softmax 后获取 nans