当另一个脚本编辑电子表格时,执行onEdit()时出现问题

时间:2013-07-05 21:18:56

标签: google-apps-script google-sheets eventtrigger

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

此外,还有一个onEdit()触发器,应该在每次进行更改时执行。将数据写入电子表格没有问题,但触发器无效。

你能帮我解决这个问题吗?

非常感谢提前。

1 个答案:

答案 0 :(得分: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);
}

抱歉我的英语不好=)