【问题标题】:Edit script to include function to change cell color when text changes编辑脚本以包含在文本更改时更改单元格颜色的功能
【发布时间】:2019-06-06 20:17:15
【问题描述】:

我正在管理团队花名册的主文档。目前,我有这个脚本,可以将不同花名册文档的更改添加到主花名册文档。我想用彩色单元格记录对主文档的任何更改。

主工作表运行脚本以将数据从源文档(其他花名册文档)同步到目标文档(主花名册文档)。我想让它突出显示对主文档的任何更改(更改单元格背景颜色)。

对于这个特定项目,更改是通过添加到文档(新的文本行)和对现有数据的更改(现有行更改文本)来定义的。

我不完全确定如何实现 onEdit 触发器。我已经阅读了其他问题的解决方案(即当值更改为另一个特定值时更改颜色)但我没有找到一个脚本可以在一般进行更改时添加颜色(任何更改都不会必须匹配一个特定的值)。

    // create menu buttons
    function onOpen() {
        var ss = SpreadsheetApp.getActiveSpreadsheet();
        var menuEntries = [{
            name: "Sync Spreadsheet Data",
            functionName: "copyDataToWorkingSpreadsheet"
        }];
        ss.addMenu("Data Update Functions", menuEntries);
    };

    // copy data from form sheet to live mapping sheet
    function copyDataToWorkingSpreadsheet() {

      // source doc
      var sss = SpreadsheetApp.openById('Source Doc');

      // source sheet
      var ss = sss.getSheetByName('teams');

      // source sheet
      var ss = sss.getSheetByName('players');

      // Get full range of data
      var SRange = ss.getDataRange();

      // get A1 notation identifying the range
      var A1Range = SRange.getA1Notation();

      // get the data values in range
      var SData = SRange.getValues();

      // target spreadsheet
      var tss = SpreadsheetApp.openById('Target Doc');

      // target sheet
      var ts = tss.getSheetByName('teams');

      // target sheet
      var ts = tss.getSheetByName('players'); 

      // set the target range to the values of the source data
      ts.getRange(A1Range).setValues(SData);

    };

现在脚本就像我需要的那样工作。非常感谢任何实现颜色更改的帮助!

【问题讨论】:

    标签: google-apps-script google-sheets triggers gs-conditional-formatting


    【解决方案1】:

    这样的事情可能对你有用。

    function trackChanges(e) {
      var rg=e.range;
      var sh=rg.getSheet();
      if(sh.getName()=='players'){
        var row=e.range.rowStart;
        var col=e.range.columnStart;
        sh.getRange(row,col).setBackground('#ffff00');//yellow highlight changes
      }
    }
    

    请注意:您不能从脚本编辑器或菜单中运行这样的函数(不提供事件 obj,如 here 所述)。

    【讨论】:

    猜你喜欢
    • 2011-04-11
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 2014-12-20
    相关资源
    最近更新 更多