我希望在该按钮调用的函数中使用按钮的锚单元格。我的按钮插入到不同的行上。单击一个应该让它仅与其锚单元格行上的数据进行交互。
这适用于表格/应用脚本,我使用该脚本在 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
}
以上是因为通过单击按钮调用的函数不知道单击了哪个按钮。换句话说,与将事件对象作为参数的简单/可安装触发器发生的情况相反,分配给按钮的函数没有。