我在Google电子表格中创建了一个自定义函数,该函数使用基于循环,前缀,后缀和一些单元格引用的管道分隔的文件路径列表填充单元格。这对纸张本身很有效。
但我也使用"发布到网络上将此表格作为CSV发布..."功能。这也有效,只要我在浏览器中打开了工作表。
但是一旦我关闭浏览器窗口,大约5分钟后(我相信发布刷新窗口),这些单元格会填充" #NAME?"在下载的CSV中。似乎自定义功能不能在"无头"已发布CSV文件的模式。
有解决方法吗?
答案 0 :(得分:1)
自定义函数不会为发布的视图提供值,因为它们在访问者的范围内运行。对于已发布的视图,这是一个匿名访问者,无法访问脚本资源(因此#NAME
错误)。
解决方案是从脚本函数实现静态值赋值。根据您的电子表格使用情况(您不提供确切信息),可以使用on edit
或基于时间的触发器来调用自定义计算。
我怀疑你需要一个在编辑包含文件路径的单元格时触发的函数,并写入给定的静态范围。
function onEdit(e) {
// Ensure the edited cell was the correct sheet and column.
var s = e.range.getSheet();
if(s.getName() == ... && e.range.getColumn() == ... ) {
// Your code called from here
}
}