首页 > 解决方案 > 使用可安装的 onedit 触发器从共享的谷歌表调用 showModalDialog

问题描述

我有一个关于从共享的谷歌表调用 showModalDialog 的问题。

这是我的问题的演示 -

GS:

function createTrigger()
{
  ScriptApp.newTrigger('testtrigger')
  .forSpreadsheet(SpreadsheetApp.getActive())
  .onEdit()
  .create();
}

function testtrigger(event)
{
 var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var actRng = sheet1.getActiveRange();
 var editColumn = actRng.getColumn();
 var editRow = actRng.getRow();
 var cell1 = sheet1.getRange(2, 2);
 var cell2 = sheet1.getRange(2, 3);

 if (editColumn == 1 && editRow == 2 ) //when updating the right cell
 {
  cell1.setValue("changed");
  showDialog();
  cell2.setValue("changed");
 }
}

function showDialog()
{
  var uiDialog = HtmlService.createHtmlOutputFromFile('myHtml');
  return SpreadsheetApp.getUi().showModalDialog(uiDialog,"title");
}

myHtml.html:

<select>
 <option value="Test1">test1</option>
 <option value="Test2" selected="selected">test2</option>
 <option value="Test3">test3</option>
</select>
<hr/>

它与我自己的帐户完美配合(cell1 和 cell2 都已“更改”)。但是,我将此文档共享给了另一个帐户。然后共享帐户调用“showDialog();”似乎有问题 (此外,只有 cell1 已“更改”)。我想这是关于授权的问题。有人可以告诉我如何解决这个问题吗?

提前致谢

标签: google-apps-scriptgoogle-sheets

解决方案


推荐阅读