google-apps-script - 使用 Over-grid Button 在脚本中引用按钮的锚单元格
问题描述
我正在寻找在该按钮调用的函数中使用按钮的锚单元格。我的按钮插入不同的行。单击一个应该使其仅与其锚单元格行上的数据交互。
这是用于表格/应用程序脚本,我用它来搜索我们 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
}
以上是因为通过单击按钮调用的函数不知道单击了哪个按钮。换句话说,与将事件对象作为参数的简单/可安装触发器相反,分配给按钮的功能没有。
推荐阅读
- c# - 对 Azure 应用服务上的程序集加载问题/文件未找到异常进行故障排除的建议
- python-3.x - OSError:[Errno 30] 只读文件系统:英特尔开发云上的“/glob/intel-python/versions/2018u2/intelpython3/lib/python3.6/site-packages/docs”
- git - 解决 Git 中的合并冲突时的新文件
- python - discord.py 机器人的 on_message 函数出错
- javascript - 离子:我的 http.post 到 WebApi RestFull 不起作用
- unity3d - Unity 扩展方法 GameObject
- date - DAX 创建日期表上的周索引
- python - 检查调用一次的模拟方法的实例
- javascript - 使用装饰器函数,其余参数,调用和应用
- java - Mockito - 模拟依赖而不注入