如何 return 正在写入函数的单元格?

How to return the cell the function is being written in?

我正在努力寻找 return 正在写入函数的当前单元格的解决方案。

例如,在定义一个范围时,我想让第一个和第二个参数(整数行和整数列)是动态的。

如果我当前调用函数的单元格是单元格 H1,则整数行必须为 1,整数列必须为 8。移动函数也会移动行和列。

sheet.getActiveCell()sheet.getCurrentCell() 只是 returning null。

在上面的第一张图片中:标记为 1 的行是参数需要动态的地方。 2 号框是我试图获取当前单元格值的地方。

function dynamicRange() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var completePercentRangeStart = sheet.getActiveCell().getValues();

  var range = sheet.getRange(1, 8, 3, 1);

  return completePercentRangeStart;
}

sheet.getActiveCell() 上使用 getValues() 没有意义,因为活动单元格是单个单元格,而 getValues() return 是一个数组的数组(二维数组)。而不是使用 getValue().

另一方面,使用自定义函数 return 活动单元格的值没有意义,因为它是某种循环引用。

关于

How to return the cell the function is being written in?

假设这意味着引用像 =whoAmI()

这样的公式的单元格
function whoAmI() {
  var sheet = SpreadsheetApp.getActiveSheet();
  return sheet.getActiveCell().getA1Notation();
}

如果H1有公式,会显示H1