首页 > 解决方案 > 如果满足要求,使用允许我在数据中加粗特定单元格的功能

问题描述

我目前正在尝试弄清楚如何在提供给我的图表中将 4 个数字加粗。我需要将两个最接近的数字设为 5(5.05 和 4.96)粗体,但它们需要彼此相邻,所以我相信我需要创建一个 UI 代码来沿着每一行搜索这一点,只要它通过 5.05 并达到 4.96,这两个值都需要变为粗体。

然后我需要创建另一位编码,然后在与前两个​​值 5.05 和 4.96 相同的行上找到最高值和最低值。

在我下面的编码中,这是我尝试启动它的可怕尝试,但它显然不起作用,而且它不允许我使用令人讨厌的 setBold()。如果有人可以帮助我,那就太棒了。我在下面留下了一个指向我的电子表格的链接,所以如果您需要更好地了解我想要实现的目标,您可以查看它。如果您打开它,它会给您一条消息以激活脚本,如果您单击否,那么您仍然可以通过单击菜单栏中的应用脚本来激活它。https://docs.google.com/spreadsheets/d/15MeTJLX2hmyJb6qN-9TJn7_2ik9mKZ8bCnv0CEyXiYI/edit?usp=sharing

function searchOutput() {

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var dataSet = sheet.getRange("C3:W13").getValues();
  
  if (dataSet > 5){ sheet.getActiveCell().setFontColor("red").activate();}

}

标签: javascriptif-statementuser-interfacegoogle-apps-scriptgoogle-sheets

解决方案


你需要使用setFontWeight("bold"). 是一种setBold方法Text classDocumentApp

样本:

function setBold() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getRange("C3:W13").getValues();
  data.forEach(function (row, i){
    row.forEach(function (cell, j){
      if(cell >= 5 && row[j + 1] < 5){
        sheet.getRange(i + 3, j + 3, 1, 2).setFontWeight("bold");
        sheet.getRange(i + 3, j + 3, 1, 2).setBackground("red");
      }
    });
  });
}

输出:

输出

笔记

  • 条件是如果当前单元格大于或等于 5,而右相邻单元格小于 5,则使其变为粗体并具有红色背景。(如果不需要,请删除红色背景线,添加它只是为了清楚起见)
  • 如果有多个满足条件的对,上面的代码可以将多个对设置为粗体(它不会在 1 对之后结束)。尽管您可以在找到第一对后通过添加另一个条件使其更快结束来使其停止。

资源:


推荐阅读