首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以在Google-docs电子表格中定义一个新函数吗?

可以在Google-docs电子表格中定义一个新函数吗?
EN

Stack Overflow用户
提问于 2011-01-29 05:18:33
回答 2查看 4.8K关注 0票数 11

有没有可能在Google电子表格中定义一个可以在任何单元格中使用的函数?

如果我可以像使用本机函数一样定义和使用引用其他单元格的函数,例如输入=myfunction(C1, C2, C3),这将是很有帮助的

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-28 06:00:25

是的,这里有一个tutorial。只需在电子表格中按名称使用javascript函数即可。使用工具>脚本编辑器定义它们。

注意名称限制;我对我创建的函数的行为感到困惑,因为找不到像"function x10() {}“这样的名称。重命名为更长的名称修复了这个问题。对于什么是不允许的,可能有记录在案的规则,但我不知道它们在哪里。

票数 8
EN

Stack Overflow用户

发布于 2012-06-22 04:22:27

我是“纽比”。但我的经验是,您只能通过"range“对象访问"cell”。您必须将范围定义为单个单元格。例如"A1:A1",将允许您访问位于"A1“的单元格。

范围是与“工作表”相关联的对象。工作表是与“电子表格”相关联的对象。

下面是访问当前活动工作表中的单元格A1的一些示例代码:

代码语言:javascript
复制
var cell_A1 = SpreadsheetApp.getActiveSheet().getRange("A1:A1");

在这里,您可以像传递任何其他参数一样传递对象。

代码语言:javascript
复制
myFunction(cell_A1);

接收函数必须“知道”它正在处理一个“范围”。它只能通过调用与"range“对象相关联的”方法“来访问它的值。

注意!一个“范围”可以由多个单元格组成。您调用的函数应该进行测试,以查看它是否与单个单元格一起工作。如果您传递的范围超过一个单元格,您的函数可能不会以预期的方式运行。

range对象的两个方法:"getNumRows()“和"getNumColumns()”返回range对象中的行数和列数。

通常,如果您使用的方法仅限于更改或访问单个单元格,并且在较大的范围集上操作,则该函数将仅在左上角的单元格成员上执行。但是要小心。虽然您可能会假设某个方法只更改单个单元格,但它实际上可能会影响范围内的所有单元格。仔细阅读文档。

还有另一种方法可以获得单个单元格的范围。它的指令如下所示:

代码语言:javascript
复制
var cell_B2 = SpreadsheetApp.getActiveSheet().getRange(2, 2, 1, 1).

前两个参数告诉"getRange“函数单元格的位置(以行、列的格式)。后两个参数定义与该范围关联的“行数”和“列数”。通过将它们都设置为"1",您可以访问单个单元格。

希望这能有所帮助。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4833149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档