1

我正在尝试学习如何使用 Google 脚本操作 Google 电子表格中的单元格。我了解到,

自定义函数返回值,但它们不能在它们所在的单元格之外设置值。在大多数情况下,单元格 A1 中的自定义函数无法修改单元格 A5。但是,如果自定义函数返回双精度数组,则结果会溢出包含该函数的单元格并填充包含自定义函数的单元格下方和右侧的单元格。您可以使用包含 return [[1,2],[3,4]]; 的自定义函数来测试它。

所以我在单元格 C14 中调用函数

function test(input){
  var secondCell = SpreadsheetApp.getActiveSheet().getRange("C14").setValue("Ahoj");
  return secondCell.getValue();
}

仍然出现错误

您无权调用 setValue

我什至无法在调用函数的单元格中设置数据。

有谁知道为什么这不起作用?


编辑:

我读过可能的重复为什么不能在自定义函数中使用 setValue?

但这并不能解决我的问题。

不想编辑其他单元格。我只想编辑包含公式的原始单元格。根据引用的文本,我应该可以编辑单元格,如果它是包含公式的原始单元格。但是我的示例返回错误,即使它只访问自己。

4

1 回答 1

1

您的代码没有意义,您在 C14 中以编程方式将值设置为“Ahoj”,然后获取这个已知变量,并尝试将其返回到您刚刚尝试将值设置为“Ahoj”的单元格中,这将替换你刚刚用来运行这个函数的函数。这几乎是一个悖论。

你搞混了,你可以得到 C14 的值,但不能在 C14 中调用该函数,或者如果你想将 C14 的值设置为“Ahoy”,在该函数中你只需要:

function test(input){
  return 'Ahoj';
}

如果您希望另一个单元格具有 C14 的值,则:

function test(input){
  return SpreadsheetApp.getActiveSheet().getRange('C14').getValue();
}

返回的值将是新的单元格值,它不是通过 trough 完成的setValue

于 2015-08-26T15:02:01.687 回答