从单元格中的超链接运行脚本

Blu*_*ine 5 google-sheets google-apps-script

我未能找到通过单击谷歌电子表格单元格中带有超链接的值来运行脚本的文档。是否可以?谢谢

小智 5

我成功实施的解决方案是将 onEdit 与目标单元格的数据验证结合使用。不完全是单击超链接,但它确实有效:

数据验证将在该单元格中插入一个下拉列表,用户可以从中选择要运行的适当脚本,或者可以通过 onEdit 获取所选单元格值并将其作为参数传递。

例如,如果我有一个名为“sheetToWatch”的工作表,其中有一列“columnWithDataValidations”,并且该列的每一行都有一个数据验证,因此它要么是空白,要么是“RUN SCRIPT”,您可以控制运行脚本,如下所示:

function onEdit(e) {
  var aSheet = SpreadsheetApp.getActiveSheet();
  var aCell = aSheet.getActiveCell();
  var aColumn = aCell.getColumn();
  var aRow = aCell.getRow();

  if (aSheet == "sheetToWatch" && aColumn == "columnWithDataValidations" && aCell.getValue() == 'RUN SCRIPT') {
    runTheScript()
  } else {
    //do nothing
  }

  return
}
Run Code Online (Sandbox Code Playgroud)


Mog*_*dad 4

如果您这么想的话,您不能直接通过 URL 运行 google apps 脚本函数。

  • 您可以将脚本实现为 Web 应用程序,并使用 doPost() 方法来修改您的电子表格。超链接需要包含一个参数来指示您在电子表格中的位置,因为 Web 应用程序没有电子表格中的上下文信息。

  • 您可以插入按钮的图片,并将脚本链接到它。如果此脚本是容器绑定到电子表格的,则它将能够访问上下文信息,例如.activeCell()确定用户所在的位置。

  • 您可以添加调用嵌入式脚本的自定义菜单功能。