【问题标题】:Referencing cells on another sheet through appscript通过 appscript 引用另一张纸上的单元格
【发布时间】:2022-08-15 01:56:59
【问题描述】:

使用谷歌表格,我试图引用另一个电子表格上的单元格(称为设置)。如果工作表上名为 setup 的单元格 B2 上的数据,则该单元格将格式化。

  conditionalFormatRules = spreadsheet.getActiveSheet().getConditionalFormatRules();
  conditionalFormatRules.splice(conditionalFormatRules.length - 1, 1, SpreadsheetApp.newConditionalFormatRule()
  .setRanges([spreadsheet.getRange(\'B2\')])
  .whenTextContains(\'setup!B2\')
  .setBackground(\'#B7E1CD\')
  .build());
  spreadsheet.getActiveSheet().setConditionalFormatRules(conditionalFormatRules);

这似乎不起作用。有没有办法在设置表中引用单元格 B2(这就是我所做的.whenTextContains(\'setup!B2\'))

  • 只是想确认一下,如果单元格是从另一张表中引用的,您会希望应用条件格式规则,对吗?
  • 这是正确的。基本上,如果其中的内容与表 2 上的单元格 B2 上的内容相同(其名称为 setup),我希望表 1 上的单元格 B2 更改为 #B7E1CD 。
  • 好吧,如果您想比较条件格式的单元格值,那么 Bryan 的答案应该可以解决问题。如果您想获取单元格公式而不是单元格值,我将发布不同的替代方案。
  • 听起来很棒,谢谢。我还没有尝试过他的解决方案,但有时间我会这样做。

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


【解决方案1】:

.whenTextContains() 需要一个字符串,在使用当前代码时,如果值是专门为“setup!B2”,则格式规则将适用,如果您希望在工作表设置时单元格 B2 中的值,则需要使用不同的方法:

SpreadsheetApp.getActiveSpreadsheet().getSheetByName("setup").getRange("B2").getValue();

你可以试试这个修改:

  conditionalFormatRules = spreadsheet.getActiveSheet().getConditionalFormatRules();
  var newValue = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("setup").getRange("B2").getValue();
  conditionalFormatRules.splice(conditionalFormatRules.length - 1, 1, SpreadsheetApp.newConditionalFormatRule()
  .setRanges([spreadsheet.getRange('B2')])
  .whenTextContains(newValue)
  .setBackground('#B7E1CD')
  .build());
  spreadsheet.getActiveSheet().setConditionalFormatRules(conditionalFormatRules);

资源:

【讨论】:

    【解决方案2】:

    选择:

    function setBGonFormula() {
    
      var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 
      var cell = spreadsheet.getRange('B2');
      var formula = cell.getFormula(); 
      if(formula == '=Setup!B2'){
        cell.setBackground('#B7E1CD');
      }
    
    }
    

    如果您的目标是获取单元格公式作为设置您选择的背景颜色的条件,这是一个示例实现。

    参考:

    getFormula()

    【讨论】:

    • 所以我试图运行这个公式,但到目前为止什么也没发生。工作表 1 或 2 上均未发生格式设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多