如何解决自定义功能(从Google表格单元格调用)的权限问题?
喜欢
我对这些类型的问题进行了很多研究,尤其是检查了StackOverflow上的类似问题。
有人说在项目属性中添加范围(我的项目已具有必需的范围),有人说从菜单或按钮调用自定义功能。
但是我需要从Google表格调用自定义功能 从单元格中获取。
然后,我将与我的组织( Gsuite )共享该工作表,以便他们可以访问数据和自定义功能。
我遇到了麻烦,没有找到任何解决方案。 请提出纠正此问题的可行方法。
*我可以轻松地直接从Google App脚本(运行)调用这些函数,而不能从工作表调用这些函数。
引发错误的示例代码“您无权调用 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);
}
答案 0 :(得分:0)
自定义功能限制
每个自定义函数都必须返回一个要显示的值,例如:
如果自定义函数返回一个值,则该值将显示在调用该函数的单元格中。 如果自定义函数返回二维值数组,则只要相邻单元格为空,这些值就会溢出到相邻单元格中。如果这将导致数组覆盖现有的单元格内容,则自定义函数将引发错误。有关示例,请参见有关优化自定义功能的部分。 自定义函数不能影响返回值的单元格。换句话说,自定义函数不能编辑任意单元格,只能编辑从其调用的单元格及其相邻单元格。要编辑任意单元格,请改用自定义菜单运行函数。 自定义函数调用必须在30秒内返回。如果不是,则该单元将显示错误:内部错误,执行自定义功能。