【问题标题】:Google Sheets Script – Function that outputs the background color of a cellGoogle Sheets Script – 输出单元格背景颜色的函数
【发布时间】:2020-05-14 02:47:41
【问题描述】:

我想在 Google 脚本中编写自己的函数,我可以在 Google 表格中使用它来获取单元格的背景颜色。让我们调用函数 GETBACKGROUNDCOLOR。

我希望能够将单元格引用(以 A1 表示法)作为参数传递,例如如果我调用 =GETBACKGROUNDCOLOR(B2),它应该返回单元格 B2 的背景颜色。如果我在没有参数的情况下调用该函数,我希望它返回调用它的同一单元格的背景颜色,例如在 C3 中调用 =GETBACKGROUNDCOLOR() 应该返回 C3 的背景颜色。

我试过这个:

function GETBACKGROUNDCOLOR(cell){
  return SpreadsheetApp.getActiveSheet().getRange(cell).getBackground();
}

但是当我调用GETBACKGROUNDCOLOR(A1)时,参数不是A1的单元格引用,而是A1的单元格内容。

我该如何解决这个问题?

【问题讨论】:

  • GETBACKGROUNDCOLOR("A1")
  • 我希望能够复制公式并在这样做时更新单元格引用,因此字符串将不起作用。

标签: function google-apps-script google-sheets scripting


【解决方案1】:

你可以试试

=GETBACKGROUNDCOLOR("A"&row(A1))

=GETBACKGROUNDCOLOR(cell("address", A1))

看看这是否有效?

(注意:根据您的语言环境,您可能必须使用分号而不是逗号)。

【讨论】:

    【解决方案2】:

    下面的防弹脚本:

    1。粘贴到 AppsScript:

    function bgHex(cellAddress) {
     var mycell = SpreadsheetApp.getActiveSheet().getRange(cellAddress);
     var bghex = mycell.getBackground();
     return bghex;
    }
    

    2。回到工作表中,使用 =bgHex(CELL("address"; B4))=bgHex(CELL("address", B4)) 调用它,具体取决于您的语言环境。仔细观察并注意区别分隔符。像波兰这样的一些国家使用逗号作为小数分隔符,我们使用分号来分隔参数。其他人使用点作为分隔符,以便他们可以使用逗号分隔 args。

    使用该函数,您将获得指定单元格背景的十六进制代码。调用任何单元格,没有范围错误,没有不匹配的数据格式。

    现在您可以尝试从这些单元格中获取其他内容,例如检查单元格值。这是test sheet,你可以看看它是如何工作的。

    你会在那里找到第二个函数,用于提取单元格的值——原理是一样的。

    function cellValue(cellAddress) {
      var mycell = SpreadsheetApp.getActiveSheet().getRange(cellAddress);
      var value = mycell.getValue();
    return value;
    }
    

    现在去https://developers.google.com/apps-script/reference/spreadsheet/range玩其他方法吧。

    【讨论】:

      【解决方案3】:

      您可以使用 =address 来解析名称

      =GETBACKGROUNDCOLOR(address(row(A1),column(A1)))
      

      对于相对单元格或

      =GETBACKGROUNDCOLOR(address(row(),column()))
      

      对于带有公式的单元格

      然而,最大的问题是你会改变单元格背景颜色,公式不会重新计算(函数重新评估不会触发),所以它可能不是一个方法。

      示例表: https://docs.google.com/spreadsheets/d/1lfFRLVqhns0AJCbZd6ikgcDtvktcgpNWfNomMASWemE/edit#gid=0

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-12-12
        • 2015-11-29
        • 1970-01-01
        • 2018-06-30
        • 2014-10-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多