使用过度网格按钮在脚本中引用按钮的锚点单元格

时间:2019-06-18 14:25:37

标签: google-apps-script google-sheets

我希望在按钮调用的函数中使用按钮的锚点单元格。我的按钮插入了不同的行。单击一个应该使它仅与其锚单元格行中的数据交互。

这是在表格/应用脚本中使用的,我用来在G Suite域的Google网上论坛中搜索外部邮件地址。对内部用户进行memberOf()检查很容易,但是G Suite无法搜索外部用户的组成员身份。

该脚本在每个结果旁边创建一个“删除”按钮。单击删除按钮应将用户从列出的组中删除 只要提供了正确的单元格,删除脚本就可以正常工作。我只是看不到如何确保按钮的锚点单元格在用户与之交互时成为选定/活动单元格。

以下是添加删除按钮的脚本,以使您了解如何插入它们:

function createRemoveButtons(numberOfResults) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var searchResultStartingColumn = 3;
  var searchResultStartingRow = 4;
  for (let i = 0; i < numberOfResults.length; i++) {
    const resultRow = numberOfResults[i];
    sheet.getRange(searchResultStartingRow + i, searchResultStartingColumn)
      .activate();
    // Get Remove button image.
    var ImageBlob = DriveApp.getFileById("1wxSNDJhRz5ehxNZBFCoshMW8j2nFTfGx")
      .getBlob().getAs('image/png');
    var image = sheet.insertImage(ImageBlob, searchResultStartingColumn, searchResultStartingRow, 1, 1);
    image.setHeight(29).setWidth(73).assignScript("removeUserFromGroup");
  }
}

1 个答案:

答案 0 :(得分:3)

您必须为每个按钮创建一个函数,并使用该函数设置单击该按钮时要作用的行。

function buttonRow10(){
  var row = 10;
  // Do the things to do on row 10
}

上述内容是因为通过单击按钮调用的函数不知道单击了哪个按钮。换句话说,与在以事件对象作为参数的简单/可安装触发器上发生的情况相反,分配给按钮的函数没有它。