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



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

这适用于表格/应用脚本,我使用该脚本在 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");
  }
}

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

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

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

最新更新