Google 工作表获取背景颜色公式

Google Sheets get Background color formula

我设置了这个自定义函数 returns 某个单元格的背景颜色:

/* Returns the Hexadecimal value of a cell's background color.
 *
 * @param {number} row The cell's row number.
 * @param {number} column The cell's column number.
 * @return The Hexadecimal value of the cell's background color.
 * @customfunction
 */
function BGHEX(row, column) {
  var background = SpreadsheetApp.getActive().getDataRange().getCell(row, column).getBackground();
  return background;
}

起初它有效,但是当我将脚本应用于按钮时,它开始抛出以下错误:

Error
Exception: The parameters (null,null) don't match the method signature for SpreadsheetApp.Range.getCell.

有人知道它为什么突然停止工作以及如何解决它吗?

你也许可以这样做

function BGHEX() {
  let r = SpreadsheetApp.getUi().prompt("Get Row and Column","Enter row , column",SpreadsheetApp.getUi().ButtonSet.OK);
  let t  = r.getResponseText().split(',');
  var background = SpreadsheetApp.getActiveSheet().getRange(t[0], t[1]).getBackground();
  Logger.log(background);
  return background;
}

或者选择单元格

function BGHEX() {
  var background = SpreadsheetApp.getCurrentCell().getBackground();
  Logger.log(background);
  return background;
}

该函数有两个参数,rowcolumn,这两个参数都是必需的,因为它们用作 getCell 参数。

要在按钮中使用它,您必须以某种方式提供所需的参数:

  1. 提供默认值,
  2. 使用用户界面,即提示或对话框询问用户参数

或者设置要与 getBackground() 一起使用的单元格而不需要 rowcolumn 参数,即通过使用 getActiveCell.