2

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

4

4 回答 4

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
}
于 2017-11-15T23:18:54.867 回答
4

如果您想要的只是运行脚本的工作表上的装饰物,但您不想每次都绘制一个按钮,或者您希望装饰物可以跨多行复制,则可以使用复选框。然后您可以处理onEdit并将单元格的值设置回false。或者在脚本运行时将其设置为 true,然后再设置为 false。

于 2019-10-26T23:16:32.680 回答
3

如果这是您的想法,您不能直接通过 URL 运行 Google Apps 脚本功能。

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

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

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

于 2013-07-17T15:53:53.357 回答
3

我知道这是一个旧线程,但我有同样的问题并想出了一个解决方法,所以我认为它可能对其他人有所帮助。

正如 Mogsdad 提到的,您可以插入一个按钮并将您的脚本链接到它。如果您想要单击单元格中的超链接的错觉,您可以使按钮与您的单元格或文本大小相同,并使填充颜色和线条颜色都透明。它有助于有一些颜色,将按钮放在适当的位置,然后对其进行编辑以删除颜色。

对用户来说,当他们单击文本时,该函数似乎运行,但实际上它是一个不可见的按钮。它不是超链接,但我相信它达到了点击“文本”启动脚本的目的。

于 2016-08-05T18:03:09.003 回答