在谷歌脚本中返回公式

时间:2013-07-18 11:36:58

标签: javascript google-apps-script google-sheets

在Google电子表格中,想要根据另一个单元格中的值减去一个单元格与另一个单元格。

示例:

If cell A1 = "Yes" 
  subtract B1 from C1 

If cell A1 = "No"
  subtract B1 from D1

If cell A1 = ""
  subtract B1 from C1

我认为必须为这个构建一个小脚本(不确定)并提出这个:

function sub() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getActiveSheet();

  var nRange = ss.getRangeByName("sub");
  var group = nRange.getValues();;

  var range;

    if ( group == "Yes" ) {
     range = '=Q15-N15' }
    else if ( group == "No" ) {
     range = "=Q15-M15"}
    else if ( group == "" ) {
     range = "=Q15-M15"}

    return range
    }

现在它返回适当的范围,但公式不会生效。该脚本按字面顺序在单元格中粘贴范围。

1 个答案:

答案 0 :(得分:0)

如果使用.getValues()来读取范围的内容,您将收到一个二维数组值 - 即使该范围中只有一个单元格。如果您真的只想要一个值,请改用.getValue()

由于您获得了一个数组,因此所有三个if测试都评估为false,而没有为range设置值。尝试给range一个默认值开始:

var range = 'Range not set';

注意:Custom functions返回,他们无法设置单元格的公式。您的函数可以返回计算结果或要在单元格中显示的文本行。如果必须设置公式,则必须使用以其他方式调用的函数,并使用Range.setFormula()