首页 > 解决方案 > 使用范围编辑触发器打开 Google 表格侧边栏?

问题描述

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

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);
}

标签: google-apps-scriptgoogle-sheets

解决方案


推荐阅读