当做出选择并且特定单元格为空时,它会弹出一条通知,以便用户在 Google 表格中注意

问题描述 投票:0回答:1

如果从范围 D1:D9 中进行选择,我希望单元格 A1 在为空时闪烁;如果从范围 D10:D18 中进行选择,则单元格 A10 在为空时闪烁。我应该如何调整我正在使用的公式?

function onEdit() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1");
  var rangeList = sheet.getRangeList(["D1:D8", "D10:D18"]); 
  var originalColor = range.getBackground(); //It gets the original color
  for (var i = 0; i < 10; i++) {
    if (range.getValue() === "") {
      rangeList.setBackground("red");
      SpreadsheetApp.flush();
      range.setBackground(originalColor); //It keeps the original color
      SpreadsheetApp.flush();
      Utilities.sleep(1000)
    }
  }
}

示例文件是Flash Cell Test

闪烁的目的是为了让用户注意特定的单元格。 当他在 D 列(从两个不同的范围)中进行选择时,请注意不要忘记分别为特定单元格 A1 和 A10 赋值。

google-sheets google-apps-script
1个回答
2
投票

您的代码多次访问工作表,这会降低性能。为什么要使用祝酒词而不是眨眼来吸引用户的注意力? 试试这个代码:

function onEdit(e) {
  var sh = e.range.getSheet();
  var ss = e.source;
  var range = e.range;
  var a1 = sh.getRange('A1').getValue();
  var a10 = sh.getRange('A10').getValue();

  if (range.getColumn() !== 4) return;
  if (a1 !== '' && a10 !== '') return;

  ss.toast('First fill out cells A1 and A10.', 'Attention', 3);
}
© www.soinside.com 2019 - 2024. All rights reserved.