问题标签 [google-sheets-custom-function]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-apps-script - 为什么使用 Google 电子表格中的 UrlFetchApp 调用我的 Google Apps 脚本需要很长时间才能运行?
我正在使用自定义函数来不断修改工作表的行数,因为来自另一个工作表的数据发生变化。为此,我必须将进行修改的脚本放入独立的 Google Apps 脚本中,因为直接从电子表格调用的自定义函数没有写入权限。然后我从自定义函数中调用 UrlFetchApp.fetch。
一切都按我的预期工作,但问题是由于某种未知原因,脚本运行就像修改电子表格的每个表达式在执行前等待大约 10 秒一样。当我使用在 UrlFetchApp.fetch 中使用的相同 URL 直接从浏览器调用它时,更改会立即发生。
假设我有以下内容:
如果我要从浏览器运行脚本,脚本会立即完成。setValue
但是,当从我的电子表格中调用时,每个表达式运行之前似乎要等待大约 10 到 15 秒。知道为什么会这样以及如何使它运行得更快吗?
google-apps-script - 每次打开电子表格时停止自定义函数重新计算?
我有一个自定义函数,它使用 fetch 将一些信息保存到电子表格中。问题是,它应该在电子表格上多次使用,从各个页面获取。随着使用量的增加,每次打开电子表格时不必要地重新获取信息将成为一个越来越大的问题。
有什么办法可以避免这种默认行为?我仍然希望它在每次编辑单元格时重新计算,即使参数完全相同。有没有办法判断它是手动编辑还是自动重新计算,或者只是完全禁用该行为?
google-apps-script - 谷歌脚本自定义函数错误解决方法
我在电子表格中使用自定义函数进行各种操作。我使用了缓存值的属性服务。此外,我已经将值范围发送到函数而不是调用该函数数百次。
我正在为一列使用100 行且不断增长的函数。我试图取两列,但它超过了30 秒的自定义功能限制。
不过,我收到了一些错误消息:
“错误:执行自定义功能的内部错误。”
因为同一个自定义函数同时50 次计算这100 行的答案。
我收到这条消息大约是 50 的 9 次。这并不奇怪,因为该功能正在计算很多东西。
如果可以在不同时间启动相同的自定义函数,或者如果自定义函数在出现错误消息后再次运行,则问题将得到解决。也许还有另一种方式。
我曾尝试应用指数退避,但我想用自定义函数不可能做到这一点。
我是 JavaScript 新手,我试图找到解决方法,但没有成功。
这是调用此自定义函数的电子表格的图像:
这是我的自定义函数的代码:
google-apps-script - 如何更改运行功能的单元格格式
如果我有以下用户定义的函数,我可以返回文本“foo”...
如何通过代码为单元格分配红色背景?尽管这是一个简单的示例,但我的脚本更复杂,我想通过代码分配格式(我不想使用格式 > 条件格式...选项;我需要在单个脚本中配置所有内容。
有什么可以起作用的吗?
getActiveCell
对我不起作用,因为这会触发单击(或激活)的单元格,而不一定是包含公式的单元格。
google-apps-script - 在单元格中插入 Google 电子表格 ID
尝试将电子表格 ID 的值和工作表/选项卡 ID 插入电子表格的单元格中。
找到这个答案并尝试将代码作为脚本:
如何通过 Google Apps 脚本获取 Google 电子表格的 ID?
然后,当我尝试将它作为基于单元格的函数运行时遇到了这个错误:
错误您无权调用 msgBox(第 2 行)。
根据No permission to call msgBox in Google Apps Scripting。
希望有人可以指出一种解决方法和/或正确的方法来做到这一点。
google-apps-script - 动态单元格位置;无权调用 setValues
所以我有一张通过 IFTTT 跟踪我的工作时间的工作表,我想在我的工作表中添加一个脚本,以便在我的工作周结束时调用它,它会显示“结束工作周!” 全部在不同的列中,但在同一行中.....但是,要使 IFTTT 代码正常工作,我需要在其下方有一个空白行,因此我一直在放置“ =”。这是自定义函数:
并且在单元格中我会拥有=myRows(ROW(), COLUMN(), (ROW() + 1), (COLUMN() + 3))
而且我不会发送静态值,因为代码将被放置到不同的单元格中......值的“数组”应该始终是 4 列宽和 2 行深......没关系它放置在哪里,这就是为什么var rangeSetUp
是静态的。我可以让代码完全执行到setValues
然后我得到
#错误!您无权调用 setValues(第 11 行)。
欢迎任何帮助。我是工作表的所有者 是的。
google-apps-script - A执行自定义函数的内部错误
Apps 脚本有什么限制吗?如果我将变量“lLen”设置为大于 18,我会收到“内部错误”-http: //prntscr.com/j60kxb
实际上我需要这个字符串,var lLen = CIDlist.length;
但我得到了上面的错误。在某些情况下CIDlist.length
,价值可以是 160+。当我玩了解问题的原因时,我发现如果lLen <= 18
. 任何想法为什么会发生?
google-apps-script - 如何在谷歌工作表中生成 uuid?
如何在 google sheet 中生成 uuid(例如 ccb8a660-91c9-a556-58e0-4fa7-229516872004)。
要么用宏?还是公式?
google-apps-script - 如何在谷歌脚本中打印变量
我在打印出 和 中包含的值时遇到var courts
问题var times
。我的代码由两个 for 循环组成,遍历列和行并最终吐出用户名、他们预订的球场和时间。截至目前,该名称已被印刷,但法院和时代并未印刷。
它当前打印:"(name) has booked at"
当我想要它打印时:" (name) has booked court 1 at 4:30"
对情况有什么帮助吗?
google-apps-script - 如何确定所有加载数据操作何时完成?
我有一个表格电子表格,其中有许多使用自定义函数的单元格,该函数调用 IMPORTHTML 并解析结果。工作表中的其他计算使用这些自定义公式单元格的返回值。正如预期的那样,当自定义公式单元格进行计算时,它们会显示“正在加载数据...”错误消息。在加载数据操作完成之前,我不能相信相关计算的结果。有什么好方法可以知道某个范围内的所有加载数据操作何时完成?