1

当用户从包含注释的电子表格单元格中删除一个值时,我想显示一个 UiApp。

在以下函数上设置了 onEdit 触发器:

function showDialogue() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var r = ss.getActiveCell();
  if (r.getValue() != '') return;
  if (r.getValue() == '' &&  r.getComment() != '') {
    var app = UiApp.createApplication();

    var label = app.createLabel('If you can see this, it has worked correctly.');
    app.add(label);

    var button = app.createButton('Click to Close');
    app.add(button);

    var handler = app.createServerHandler('myClickHandler');
    handler.addCallbackElement(label);
    button.addClickHandler(handler);

    r.setValue(r.getRow());

    ss.show(app);
  }

}

function myClickHandler(e) {
  var app = UiApp.getActiveApplication();
  app.close();
  return app;
}

当我这样做时它工作正常,但如果另一个用户打开电子表格,UiApp 将无法正确显示。UiApp 窗口打开,但不显示任何小部件,并打开另存为对话框,提示用户保存 userAppPanel。

我已经在这个简化的电子表格中复制了这个问题,该电子表格与任何拥有链接(可以编辑)的人共享。

4

0 回答 0