0

我创建了一个 GUI 应用程序,允许用户提交数据并将数据写入电子表格。此电子表格具有可见性选项:“知道链接的任何人”和“可以编辑”权限。

此外,每次进行更改时都应执行 onEdit() 触发器。将数据写入电子表格没有问题,但触发器不起作用。

你能在这件事上帮助我吗?

提前谢谢了。

4

1 回答 1

0

仅当您手动更改表的内容时才会执行 onEdit 触发器。

您可以创建通用函数并从 UiApp 调用它并执行 onEdit:

function edit(str){ //general onedit function
  //do somethig (For example add " edited")

  var cell = SpreadsheetApp.getActiveSheet().getActiveCell(); 
  cell.setValue(str + ' edited');
}

function onEdit(){
  var str = SpreadsheetApp.getActiveSheet().getActiveCell().getValue();
  edit(str);
}

function gui(){
  var app = UiApp.createApplication();
  var tb = app.createTextBox().setName('tb');

  var hndlr = app.createServerHandler('onSend').addCallbackElement(tb);
  var btn = app.createButton('Send').addClickHandler(hndlr);

  SpreadsheetApp.getActiveSpreadsheet().show(app.add(tb).add(btn));
}

function onSend(e){
  var str = e.parameter.tb;
  edit(str);
}

对不起我的英语不好=)

于 2013-07-06T07:14:12.193 回答