要打开带有范围编辑触发器的Google表格侧边栏?

时间:2019-01-21 22:53:13

标签: google-apps-script google-sheets

在工作表中编辑单元格时是否可以弹出侧栏?下面的代码基于该触发器成功启动了一个警告框,但使用侧边栏不会启动它。

从脚本编辑器的“运行功能”菜单中手动触发功能showSidebar()时可以正常工作。

我怀疑这可能是HtmlService的局限性,因为将以下showAlert()代码替换为利用HtmlService的代码也会使它停止响应onEdit触发器...

function onEdit(event) {
  testTrigger();
}

function testTrigger() {

  var sheet = SpreadsheetApp.getActiveSheet();
  var editRange = sheet.getActiveRange();
  var editRow = editRange.getRow();
  var editCol = editRange.getColumn();
  var range = sheet.getRange("C3:C");
  var rangeRowStart = range.getRow();
  var rangeRowEnd = rangeRowStart + range.getHeight()-1;
  var rangeColStart = range.getColumn();
  var rangeColEnd = rangeColStart + range.getWidth()-1;
  if (editRow >= rangeRowStart && editRow <= rangeRowEnd && editCol >= rangeColStart && editCol <= rangeColEnd) {

    showAlert(); // will work
    showSidebar(); // will NOT work

  }

}


function showAlert() {
  var ui = SpreadsheetApp.getUi();

  var result = ui.alert(
     'title',
     'message',
      ui.ButtonSet.OK);

}


function showSidebar() {
  var html = HtmlService.createHtmlOutput('Page')
      .setTitle('My custom sidebar')
      .setWidth(300);
  SpreadsheetApp.getUi().showSidebar(html);
}

0 个答案:

没有答案