【问题标题】:Using cell values as sheet values使用单元格值作为工作表值
【发布时间】:2018-12-25 17:46:45
【问题描述】:

我有一些带有月份值的单元格,然后我有一些带有这些值的 工作表

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

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 个数字的乘积...

【问题讨论】:

  • 查看 JavaScript 中的数据类型。认识到 Google Sheets 应用程序在后台执行一些值转换,如果您想使用编程来实现类似的目标,则必须执行中间步骤:将 String 变量转换为应用程序在该位置保存的值由 String 的值描述。此任务使用应用程序的 API。

标签: google-apps-script google-sheets


【解决方案1】:

你需要获取范围和值。

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 ;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 2022-01-28
    相关资源
    最近更新 更多