有没有可能在Google电子表格中定义一个可以在任何单元格中使用的函数?
如果我可以像使用本机函数一样定义和使用引用其他单元格的函数,例如输入=myfunction(C1, C2, C3),这将是很有帮助的
发布于 2011-07-28 06:00:25
是的,这里有一个tutorial。只需在电子表格中按名称使用javascript函数即可。使用工具>脚本编辑器定义它们。
注意名称限制;我对我创建的函数的行为感到困惑,因为找不到像"function x10() {}“这样的名称。重命名为更长的名称修复了这个问题。对于什么是不允许的,可能有记录在案的规则,但我不知道它们在哪里。
发布于 2012-06-22 04:22:27
我是“纽比”。但我的经验是,您只能通过"range“对象访问"cell”。您必须将范围定义为单个单元格。例如"A1:A1",将允许您访问位于"A1“的单元格。
范围是与“工作表”相关联的对象。工作表是与“电子表格”相关联的对象。
下面是访问当前活动工作表中的单元格A1的一些示例代码:
var cell_A1 = SpreadsheetApp.getActiveSheet().getRange("A1:A1");在这里,您可以像传递任何其他参数一样传递对象。
myFunction(cell_A1);接收函数必须“知道”它正在处理一个“范围”。它只能通过调用与"range“对象相关联的”方法“来访问它的值。
注意!一个“范围”可以由多个单元格组成。您调用的函数应该进行测试,以查看它是否与单个单元格一起工作。如果您传递的范围超过一个单元格,您的函数可能不会以预期的方式运行。
range对象的两个方法:"getNumRows()“和"getNumColumns()”返回range对象中的行数和列数。
通常,如果您使用的方法仅限于更改或访问单个单元格,并且在较大的范围集上操作,则该函数将仅在左上角的单元格成员上执行。但是要小心。虽然您可能会假设某个方法只更改单个单元格,但它实际上可能会影响范围内的所有单元格。仔细阅读文档。
还有另一种方法可以获得单个单元格的范围。它的指令如下所示:
var cell_B2 = SpreadsheetApp.getActiveSheet().getRange(2, 2, 1, 1).前两个参数告诉"getRange“函数单元格的位置(以行、列的格式)。后两个参数定义与该范围关联的“行数”和“列数”。通过将它们都设置为"1",您可以访问单个单元格。
希望这能有所帮助。
https://stackoverflow.com/questions/4833149
复制相似问题