Google apps script Can';无法通过脚本获取范围内的特定值

Google apps script Can';无法通过脚本获取范围内的特定值,google-apps-script,google-sheets,google-sheets-formula,Google Apps Script,Google Sheets,Google Sheets Formula,我正在尝试做一件非常简单的事情,就是在GoogleSheets中向脚本函数传递一个范围,并让它返回第一行中的第一个值。以下是我的功能: function totalTake(pRange) { var sheet = SpreadsheetApp.getActiveSpreadsheet(); var range = sheet.getRange(pRange) const numRows = range.getNumRows(); const numCols = range.g

我正在尝试做一件非常简单的事情,就是在GoogleSheets中向脚本函数传递一个范围,并让它返回第一行中的第一个值。以下是我的功能:

function totalTake(pRange) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var range = sheet.getRange(pRange)
  const numRows = range.getNumRows();
  const numCols = range.getNumColumns();
  return range[0,0]
}
我用参考文献1,1试过了,它没有什么区别。我在单元格中传入
=totalTake(“F4:H74”)
,第一个值中肯定有一个字符串值。它返回正确的行数或列数,因此它得到一个数组,但我怀疑其中没有值。我已尝试修改
工作表=
赋值以包含当前工作表;没有任何区别:返回值为空

我到底错过了什么

编辑:以这种方式提出问题可能会产生误导,但应将其视为“在x和y的确定位置获取任意单元格值”,而不仅仅是第一行中的第一个单元格。但当我在迭代时无法让它找到值,导致我怀疑提取的范围中充满了空值后,我将其简化为只找到一个已知值的单元格


稍微详细说明一下这个问题:这些值数组是使用基于零还是基于一的数组表示法回答:零基础

我相信你的目标如下

  • 您希望检索范围的第一行和第一列的值
  • 您希望将脚本用作自定义函数
  • 当将
    =totalTake(“F4:H74”)
    放入单元格时,您希望检索单元格“F4”的值。
    • 返回第一行的第一个值。
      ,我这样理解
在这种情况下,我建议修改
返回范围[0,0]
,如下所示

发件人: 致:
  • 在该修改中,当将
    =totalTake(“F4:H74”)
    放入单元格时,将返回单元格“F4”的值。
    • 返回第一行的第一个值。
      ,我这样理解。如果我误解了你的目标,请告诉我。我想修改它
注:
  • 在脚本中,似乎没有使用
    numRows
    numCols
    。如果要使用,请修改脚本
参考:
补充: 从下面的答复中,

实际目标是在范围内的任意x,y位置获取值

我理解如下

  • 您希望通过给定范围的坐标从范围中检索值。但在这种情况下,坐标的左上角是
    (x,y)=(0,0)
在这种情况下,下面的修改如何

发件人: 致:
  • 在这种情况下,请输入一个自定义公式
    =totalTake(“F4:H74”,5,5)
    。在这种情况下,返回单元格“K9”的值
参考:
    • 例如,使用此方法时,还可以通过给定坐标和长度来检索值

    • 我相信你的目标如下

      • 您希望检索范围的第一行和第一列的值
      • 您希望将脚本用作自定义函数
      • 当将
        =totalTake(“F4:H74”)
        放入单元格时,您希望检索单元格“F4”的值。
        • 返回第一行的第一个值。
          ,我这样理解
      在这种情况下,我建议修改
      返回范围[0,0]
      ,如下所示

      发件人: 致:
      • 在该修改中,当将
        =totalTake(“F4:H74”)
        放入单元格时,将返回单元格“F4”的值。
        • 返回第一行的第一个值。
          ,我这样理解。如果我误解了你的目标,请告诉我。我想修改它
      注:
      • 在脚本中,似乎没有使用
        numRows
        numCols
        。如果要使用,请修改脚本
      参考:
      补充: 从下面的答复中,

      实际目标是在范围内的任意x,y位置获取值

      我理解如下

      • 您希望通过给定范围的坐标从范围中检索值。但在这种情况下,坐标的左上角是
        (x,y)=(0,0)
      在这种情况下,下面的修改如何

      发件人: 致:
      • 在这种情况下,请输入一个自定义公式
        =totalTake(“F4:H74”,5,5)
        。在这种情况下,返回单元格“K9”的值
      参考:
        • 例如,使用此方法时,还可以通过给定坐标和长度来检索值

      谢谢塔奈克。为了使问题简单化,我可能过于简单化了;看看我和马里奥的交流。我已经稍微澄清了这个问题。实际的目标是在范围内的任意x,y位置获得一个值。@Dan Donaldson感谢您的回答。对于给您带来的不便和我糟糕的英语水平,我深表歉意。从你的回复中,我又增加了一个修改点。你能确认一下吗?如果这不是你期望的结果,我再次道歉。塔奈克:非常感谢你的回答,它完全打开了我想要的大门。我已将答案标记为最佳,并对其进行了投票。谢谢塔奈克。为了使问题简单化,我可能过于简单化了;看看我和马里奥的交流。我已经稍微澄清了这个问题。实际的目标是在范围内的任意x,y位置获得一个值。@Dan Donaldson感谢您的回答。对于给您带来的不便和我糟糕的英语水平,我深表歉意。从你的回复中,我又增加了一个修改点。你能确认一下吗?如果这不是你期望的结果,我再次道歉。塔奈克:非常感谢你的回答,它完全打开了我想要的大门。
      return range[0,0]
      
      return range.getValue();
      
      return range[0,0]
      
      return range.offset(y, x).getValue();