使用单元格值作为工作表值

时间:2018-12-25 17:46:45

标签: google-apps-script google-sheets

我有一些具有月份值的单元格,然后有一些具有这些值的 sheets

Google Sheets, Cell containing months and Sheets with those month names

在我的脚本编辑器中,我必须将这些单元格值用作工作表值,所以我要这样做:

function PROD(cellMonth) {
  var val1 = cellMonth + '!G6';
  var val2 = cellMonth + '!G7';

  return val1 * val2 ;
}


但是我得到Result was not a number的结果。

我该如何解决?


我认为发生这种情况是因为cellMonth + '!G6'是一个字符串值,而不是调用工作表值的正确方法。

例如,如果我这样做:

function PROD(input1,input2) {
  return input1 * input2;
}

然后在单元格中输入=PROD(January!E6,January!E7),我将得到想要的结果。

如果我这样做:

function PROD(cellMonth) {
  var val1 = cellMonth + '!G6';
  var val2 = cellMonth + '!G7';

  return val1 ;
}

我的单元格将返回January!E6,所以我正在做2个字符串值而不是2个数字的乘积...

1 个答案:

答案 0 :(得分:2)

您需要获取范围和值。

function PROD(cellMonth) {
  var rngString1 = cellMonth + '!G6';
  var rngString2 = cellMonth + '!G7';
  var ss = SpreadsheetApp.getActive();
  var val1 = ss.getRange(rngString1).getValue();
  var val2 = ss.getRange(rngString2).getValue();
  return val1 * val2 ;
}