【发布时间】:2019-10-10 08:59:27
【问题描述】:
如何解决自定义函数的权限问题(从 Google 表格单元格调用)?
喜欢
- “您无权调用setDataValidation”
- “您无权调用setValue”
我对这些类型的问题进行了很多研究,特别是在 Stack Overflow 上检查了类似的问题。有人说在项目属性中添加范围(我的项目已经有所需的范围),有人说要从菜单或按钮调用自定义函数。
但我的要求是从单元格中调用 Google 表格中的自定义函数。
然后,我将与我的组织 (GSuite) 共享该工作表,以便他们可以访问数据和自定义功能。
我遇到了麻烦,我没有找到任何解决方案。
请提出解决此问题的可能方法。
*我可以轻松地直接从 Google Apps 脚本(从运行)调用这些函数,但不能从工作表调用。
引发错误“您无权调用 setDataValidation”的示例代码
function getNamedRanges(type,cell){ // parms ex. ("Cars" ,"D1")
Logger.log(type);
var namedRanges = SpreadsheetApp.getActive().getNamedRanges();
for (var i = 0; i < namedRanges.length; i++) {
if(namedRanges[i].getName()==type){
var cell = SpreadsheetApp.getActive().getRange(cell)
createDropdownForRange(namedRanges[i].getRange(),cell);
}
}
}
function createDropdownForRange(namedRange,cell){
var rule = SpreadsheetApp
.newDataValidation()
.requireValueInRange(namedRange,true);
cell.setDataValidation(rule);
}
【问题讨论】:
-
你能发布你的脚本 sn-p 吗? (不起作用的那个)某些功能比其他功能需要更多的权限
-
我刚刚添加了一个从命名范围创建下拉列表的代码 sn-p。它在谷歌应用程序脚本编辑器中运行良好,但是当我试图从工作表中调用它时它不起作用。
-
自定义函数必须返回一个值。您应该阅读自定义函数的限制here 此外,自定义函数不能更改其他单元格。
-
我想在调用公式的同一单元格中设置验证(从命名范围下拉)。我怎么能这样做?
标签: google-apps-script google-sheets