如何返回函数被写入的单元格?

时间:2019-01-25 19:07:39

标签: google-apps-script google-sheets custom-function google-sheets-formula

我正在努力寻找一种解决方案来返回正在写入函数的当前单元格。

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

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

sheet.getActiveCell()sheet.getCurrentCell()仅返回null。

Google Apps Script Code

Google Sheets Example

在上面的第一张图片中:标记为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;
}

1 个答案:

答案 0 :(得分:1)

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

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

关于

  

如何返回要写入函数的单元格?

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

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

如果H1具有公式,它将显示H1