javascript - 用于闪烁一系列单元格的 Google 电子表格脚本

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

我是脚本编写新手,最近发现下面的脚本可以使单元格在编辑时闪烁或更改颜色。我想针对一系列单元格实现相同的脚本。我已经尝试过 ie: A7:A 但它不起作用。我相信我在某个地方遗漏了一个论点。

function onEdit(e)
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var mysheet = ss.getSheetByName("Sheet1");
  var activeCell = ss.getActiveCell().getA1Notation();

  if( activeCell == "A1" )
  {
    for(var i=0;i<50;i++)
    {
      if( i%2 == 0 )
        mysheet.getRange("A1").setBackground("RED");
      else
        mysheet.getRange("A1").setBackground("WHITE");

      SpreadsheetApp.flush();
      Utilities.sleep(500);
    }
  }
}

最佳答案

我知道您希望编辑的单元格在 A7:A 范围内时闪烁。这是使用 event object 下面完成的其中 range 属性指的是事件范围。

如果列为 1 并且行 >= 7,则闪烁 50 次。 (顺便说一句,这意味着闪烁 25 秒。)

function onEdit(e) {
  if (e.range.getColumn() == 1 && e.range.getRow() >= 7) {
    for (var i = 0; i < 50; i++) {
      e.range.setBackground(i % 2 ? "WHITE" : "RED");
      SpreadsheetApp.flush();
      Utilities.sleep(500);
    }
  }
}

如果您希望在编辑任何单元格时整个范围 A7:A 闪烁,则相关方法是 setBackgrounds,它需要一个双数组颜色。这个数组需要先准备好,所以代码变成

function onEdit(e) {
  if (e.range.getColumn() == 1 && e.range.getRow() >= 7) {
    var range = e.range.getSheet().getRange("A7:A");
    var height = range.getHeight();
    var whiteArray = Array.apply(null, Array(height)).map(function() {
      return ["WHITE"];
    });
    var redArray = Array.apply(null, Array(height)).map(function() {
      return ["RED"];
    });
    for (var i = 0; i < 50; i++) {
      range.setBackgrounds(i % 2 ? whiteArray : redArray);
      SpreadsheetApp.flush();
      Utilities.sleep(500);
    }
  }
}

使用this answer中的数组填充方法.

关于javascript - 用于闪烁一系列单元格的 Google 电子表格脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38066294/

相关文章:

Javascript:将与过滤谓词不匹配的元素放入单独的数组中

google-apps-script - Google Apps 脚本 : Not found 的失败摘要

Google 云端硬盘中的 CSS 样式表不再有效

google-apps-script - 自动将所有工作表中的所有文本更改为大写,但不更改整个 Google 电子表格中的数字

javascript - 无论如何,我要在 jsoncschema 中定义一个字典?

php - 从 Google 获取当前位置,无需将用户送走进行身份验证

javascript - 工作表未定义

html - 从 Google 表格中的 HTML 文本中提取 href 属性

date - 使用单元格格式值的 IF 语句

javascript - 如何在 Meteor 中记录出站 HTTP 请求?