google-apps-script - Google 表格脚本:结合 onEdit 和 openById("OtherSheetsId")
问题描述
我在这方面很糟糕,但在发帖之前我确实搜索了很多。我找到了一些答案,现在我被困在这部分。
简而言之:我们有 2 个单独的谷歌文档表。当电子表格 1 中的特定单元格发生更改时,脚本必须更改电子表格 2 中特定单元格的值。
function onEdit(e) {
var mainsheet = SpreadsheetApp.getActive().getSheetByName('Main');
var changeit = sheet.getRange("A1").getValue();
var offsheet = SpreadsheetApp.openById("spreadsheet2s id").getSheetByName('Echo').getRange("A1");
if (changeit == 'true'){
offsheet.setValue('true');
}
它基本上不起作用,并且在脚本中,当我转到 Run -> Executions Transcript 时,它告诉我执行失败:您无权调用 SpreadsheetApp.openById。
当我在同一张纸上尝试这个时,它工作正常。
似乎可安装的触发器可以解决问题,但我无法找到任何关于这里究竟要做什么的信息,例如如何应用可安装的触发器。
谷歌信息说,这将允许函数更改另一张纸上的信息。我们如何使它仅适用于上面列出的 onEdit(e) 函数?
最大的问题是,我们如何使这项工作/将它们联系在一起?我所做的只是将其粘贴在下面(好像它是它自己的功能)。我以各种方式使用它(例如尝试在其中添加 openByID 信息以及其他一些愚蠢的事情),我想我在这里遗漏了一些简单的东西。
function createSpreadsheetEditTrigger() {
var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger('onEdit')
.forSpreadsheet(ss)
.onEdit()
.create();
}
预先感谢您的帮助。
解决方案
尝试这个:
function ss1OnEdit(e){
if(e.range.getSheet().getName()!='Main') return;
SpreadsheetApp.openById("ss2id").getSheetByName("Echo").getRange(e.range.getA1Notation()).setValue(e.value);
}
//You can run this function all you want it will not create more than one trigger. But you must run it once to setup the first trigger.
function createSS1OnEditTrigger() {
var ss=SpreadsheetApp.getActive();
var trgs=ScriptApp.getProjectTriggers();
var found=false;
for(var i=0;i<trgs.length;i++) {
if(trgs[i].getHandlerFunction()=="ss1OnEdit") {
return;
}
}
if(!found) {
ScriptApp.newTrigger("ss1OnEdit").forSpreadsheet(ss.getId()).onEdit().create();
}
}
推荐阅读
- mongodb - 有没有办法在 MongoDB 中存储 unicode 字符串?
- ruby-on-rails - 使用 AsyncStorage 在带有 Rails 后端的 React Native 中持久登录的问题
- mongodb - 如何在 MongoDB 上创建包含数组的数组
- tensorflow - 在 tf.case 上计算梯度时使用签名
- angular - 缺少角属性
- django - 为什么我提交表单后会出现 403 禁止错误?
- splunk - 在 docker 容器中运行的 Splunk 索引器在 docker 重新启动时覆盖 inputs.conf
- android - 如果互联网不可用,如何从 webview 隐藏链接?Kotlin,Android 工作室
- vba - Excel VBA Web Scraping 未引用创建的 Internet Explorer 对象
- r - 随机森林中的变量选择和预测精度