google-apps-script - 当单元格更改文本时更改行颜色的脚本

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

我有一个 Google 电子表格,其中保存了错误列表,每当我修复错误时,我都会将状态从“未开始”更改为“完成”。我想为 Google 文档电子表格编写一个脚本,以便每当我将状态更改为“完成”时,整行就会以某种颜色突出显示。

我已经知道 Google 电子表格已经具有“更改文本颜色”功能,但该功能仅更改单元格的颜色,不会更改整行的颜色。

最佳答案

//Sets the row color depending on the value in the "Status" column.
function setRowColors() {
  var range = SpreadsheetApp.getActiveSheet().getDataRange();
  var statusColumnOffset = getStatusColumnOffset();

  for (var i = range.getRow(); i < range.getLastRow(); i++) {
    rowRange = range.offset(i, 0, 1);
    status = rowRange.offset(0, statusColumnOffset).getValue();
    if (status == 'Completed') {
      rowRange.setBackgroundColor("#99CC99");
    } else if (status == 'In Progress') {
      rowRange.setBackgroundColor("#FFDD88");    
    } else if (status == 'Not Started') {
      rowRange.setBackgroundColor("#CC6666");          
    }
  }
}

//Returns the offset value of the column titled "Status"
//(eg, if the 7th column is labeled "Status", this function returns 6)
function getStatusColumnOffset() {
  lastColumn = SpreadsheetApp.getActiveSheet().getLastColumn();
  var range = SpreadsheetApp.getActiveSheet().getRange(1,1,1,lastColumn);

  for (var i = 0; i < range.getLastColumn(); i++) {
    if (range.offset(0, i, 1, 1).getValue() == "Status") {
      return i;
    } 
  }
}

关于google-apps-script - 当单元格更改文本时更改行颜色的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3703676/

相关文章:

google-sheets - 如果另一列的任何单元格中都存在值,则突出显示单元格

google-apps-script - 使用 Google Docs 电子表格作为动态 Google 协作平台网页的数据源

javascript - 在 Google App 脚本中发送 HEAD 请求

HTML 表格根据条件更改文本颜色

javascript - 我可以将用户帐户与驱动器 API 的操作关联起来吗?

google-apps-script - 如何将 Google 电子表格图表上传到 Slack channel

google-sheets - 如何在条件格式自定义公式中寻址当前单元格?

google-apps-script - 谷歌应用脚​​本 : how to determine screen resolution?

javascript - 在 Google Apps 脚本中显示 HTML 格式的消息框?

google-apps-script - Google Apps 脚本 - 表格 - 条件格式 - X = 突出显示