如何使用google apps脚本在自定义函数中编辑自定义函数的调用单元格?

时间:2018-02-24 08:20:08

标签: google-apps-script google-sheets google-sheets-api

在搜索various questions和文档后,我仍然无法编辑自定义函数的调用单元格。根据{{​​3}}:

  

返回当前被视为活动的单元格范围。这个   通常表示用户在活动中选择的范围   sheet,但在自定义函数中,它指的是正在活动的单元格   重新计算。

虽然这个描述是针对getActiveRange()函数的,但是假设getActiveCell()函数的方式相同。

我正在尝试从我的自定义函数中调用辅助函数,该函数应该返回'活动单元格'据我所知,应该是自定义函数的调用单元格。不工作的代码:

componentWillUnmount() {
    navigator.geolocation.clearWatch(this.state.watchID);
}

我也尝试直接在自定义函数中使用SpreadsheetApp,以及使用:

// returns the current active (calling) cell for use within custom functions
function callingCell() {
  return SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getActiveRange()
}

// change background colour of calling cell
function getInfoFromPublicApi(type) {
      ... // get prices using UrlFetchApp
      callingCell().setBackground('green')
      return averagePrice(prices, type)
}

1 个答案:

答案 0 :(得分:1)

你可以采取两种方式。首先,将调用单元格设置为变量。您不能像在大型函数中尝试那样将方法链接在一起。或者,您可以删除callingCell()函数,因为该信息是在event的{​​{1}}对象中处理的。

方法1

onEdit()

方法2

// returns the current active (calling) cell for use within custom functions
function callingCell() {
  return SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getActiveRange();
}

// change background colour of calling cell
function getInfoFromPublicApi(type) {
  var active = callingCell();

  ... // get prices using UrlFetchApp
  active.setBackground('green')
  return averagePrice(prices, type)
}