问题标签 [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 的文档非常适合添加自定义功能,但是我希望我的插件能够以编程方式添加自定义功能。
例如,以下似乎是不可能的:
- 假设有一个
getScript()
自定义函数,如果你这样做getScript("scraper")
,这个自定义函数将执行 HTTP 调用并scraper()
在你的谷歌表中安装一个新函数。 - 然后您可以
scraper("https://www.google.com")
从“google.com”获取所有文本。
我知道可以scraper()
提前定义。
有可能这样生活吗?
google-apps-script - 执行自定义函数时出现“引用不存在”错误
我正在用 Google Apps 脚本编写一个函数,当我调用我的函数时,我需要解决的最后一个错误似乎是 Google 表格中的“引用不存在”错误。我不知道该怎么做,因为我的代码似乎没有问题。
这就是我的代码现在的样子。它不完整,因为我需要更改它以供用户输入,但这是一个测试。
在谷歌表格单元格中,我输入=sortingtesting()
找到的解决方案:这是我的工作代码,其中包含来自谷歌表格的数组作为参数,我只是认为将工作原型放在那里会很好:
google-apps-script - 您无权调用 openById
问题:当我运行脚本时,谷歌告诉我,
您无权调用 openById
我从另一个 Google 电子表格中复制了一个脚本,更改了target_ssKey变量的单元格引用,并在源电子表格和目标电子表格中创建了大小合适的命名范围。
Google Apps 脚本文档没有说明它可能无法正常工作的原因:
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#openById%28String%29
另一个 Google Apps 脚本文档说它应该对我有用,因为我从自定义菜单中调用它:
https://developers.google.com/apps-script/guides/sheets/functions#using_apps_script_services
上面的第二个链接说:
如果您的自定义函数抛出错误消息您没有调用 X 服务的权限。,该服务需要用户授权,因此不能在自定义功能中使用。
要使用上述服务以外的服务,请创建一个运行 Apps 脚本函数的自定义菜单,而不是编写自定义函数。如果需要,从菜单触发的功能会要求用户授权,因此可以使用所有 Apps 脚本服务。
我尝试将函数放入“自定义函数”项目,然后放入“附加”项目,但仍然收到相同的错误消息。
关于我做错了什么以及如何做到这一点的任何想法?
这是我的确切代码:
google-apps-script - 带有附加组件的自定义功能?
我一直在尝试从我拥有的一些现有的谷歌应用脚本创建一个谷歌电子表格插件,这个应用脚本的一个重要部分是自定义函数。
尽管附加组件的文档并未表明支持此功能,但自定义功能的文档确实表明您可以。
https://developers.google.com/apps-script/guides/sheets/functions
通过测试,我曾经无法通过附加组件公开自定义功能。有谁知道让这个工作的秘诀?
javascript - Iterating over cells in Google Spreadsheet Custom Function
I am trying to build a custom function in Google Spreadsheet, that would basically do this: - say custom function called func() is placed in cell D2 and invoked as =func(B2) - provided a particular cell reference (say B2) as a starting point it would iterate over all fields that follow B2 down the column (so B3, B4, B5) while the value of those fields equals to a particular symbol (say pipe |). - For each iteration where this condition succeeds (i.e B3 == '|') it could add up/aggregate values from the cell it was placed, down the column. So if cells B3, B4,B5 contain | and then B6 doesn't it would return value of D3+D4+D5.
So for example if in this spreadsheet:
In the cells B10 the function should produce value of 8 (1+3+4) and in the cell B15 the function should produce value of 11 (5+6).
I've came up with something like this:
and got stuck in 2 places really:
Function seems to work in the debugger, but when I invoke it from the spreadsheet it fails on the getRange() function call saying no such range exist. If I replace it with static call of say getRange('A2') that part works but then it fails on the getCell() saying index out of range.
How do I actually get the value of the next cell down the column from where the function itself is placed?
Really quite lost on these two and would appreciate any advice. Thank you!
google-apps-script - 尝试打开另一个电子表格时来自自定义函数的错误消息。“您无权执行该操作。”
我有一个自定义函数,我想用它从另一个电子表格中检索工作表中的单元格值。该函数的两个参数是row
和col
,它们确定要引用的单元格。每当我尝试使用该函数时,我都会收到错误"You do not have permission to perform that action."
,指向带有 openByID 方法的行。这是我的自定义函数:
我需要发布 FORM_DATA_SPREADSHEET 吗?任何帮助是极大的赞赏。
javascript - 谷歌脚本找不到 getRange 也没有运行权限
我正在尝试让 Google 表格从另一张表格中获取精算数据;另一张表本质上是一个查找表。代码(删除了电子表格 id):
它应该非常简单,并且它在今年早些时候工作,但大约一个月前它停止工作,现在当我调试时它给出了错误:
找不到方法 getRange((class),(class),number,number)。(第 3 行,文件“”)。
在工作表本身中,它会给出错误“您无权执行该操作(第 3 行)”。
如果我将代码更改为“...getRange(5,5,1,1)...”,以便它不使用变量“age”和“sex”,那么它不会给出错误在调试器中,但在工作表本身中,它仍然给出“您没有权限”错误。我环顾四周,发现触发器会导致这个问题,所以我添加了一个这样的触发器:
并授权脚本访问另一个电子表格,但这并没有解决任何一个问题。有任何想法吗?
google-apps-script - 我可以在没有 Google Apps 脚本的情况下在 google 电子表格上创建自定义函数吗?
我正在使用带有 Google Apps 脚本的 google 电子表格。
但它很容易给我错误信息。像这样
每秒为此 Google 用户帐户调用的错误脚本次数过多。(第 0 行)。
有什么办法可以避免错误吗?(除了reduce函数调用的方式)或支持Javascript函数定义的替代电子表格程序?
google-apps-script - 谷歌脚本 setValue
我正在尝试学习如何使用 Google 脚本操作 Google 电子表格中的单元格。我了解到,
自定义函数返回值,但它们不能在它们所在的单元格之外设置值。在大多数情况下,单元格 A1 中的自定义函数无法修改单元格 A5。但是,如果自定义函数返回双精度数组,则结果会溢出包含该函数的单元格并填充包含自定义函数的单元格下方和右侧的单元格。您可以使用包含 return [[1,2],[3,4]]; 的自定义函数来测试它。
所以我在单元格 C14 中调用函数
仍然出现错误
您无权调用 setValue
我什至无法在调用函数的单元格中设置数据。
有谁知道为什么这不起作用?
编辑:
我读过可能的重复为什么不能在自定义函数中使用 setValue?
但这并不能解决我的问题。
我不想编辑其他单元格。我只想编辑包含公式的原始单元格。根据引用的文本,我应该可以编辑单元格,如果它是包含公式的原始单元格。但是我的示例返回错误,即使它只访问自己。
google-apps-script - 清除单元格并获取 Google 工作表名称
我想制作一个脚本来清除除前四个之外的所有工作表上的固定单元格,并用工作表名称填充相同的单元格。
到目前为止,我有一个脚本来清空单元格并用一个新函数填充它来获取工作表名称。第一个脚本在打开电子表格时触发。但是,它只是说正在加载……而不是获取工作表名称。
我当前的(非工作脚本):
有什么好主意吗?谢谢