似乎无法获得任何 Google 脚本代码来加粗所有出现的一个特定单词

Can't seem to get any Google Scripts code to work to BOLD all occurrences of one specific word

我发现 RichTextValue 应该可以工作,但我不确定在这段代码中应该把这个词放在什么地方以及何时使用这段代码

function Bold() {
  for (var i = 4; i <=160; i++){
    var cell = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(i, 1);
    cell.setRichTextValue(SpreadsheetApp.newRichTextValue()
        .setText(cell.getValue())
        .setTextStyle(2, 16, SpreadsheetApp
          .newTextStyle()
          .setBold(true)
          .build())
        .build());
  }
}

我收到一个非法参数错误,我不知道哪里出错了。我不是开发人员,但非常擅长 VBA。不幸的是,我真的在与 Google 脚本作斗争。任何帮助将不胜感激,因为这是我唯一无法做对的事情。谢谢!

让我们考虑以下代码:

function testBold() {
  var boldStyle = SpreadsheetApp.newTextStyle().setBold(true).build();
  var cells = SpreadsheetApp.getActive().getRange('Лист1!A1:A100');

  var values = cells.getValues();  // initial values
  var richValues = values.map(     // become rich values
    function(v) {
      var richBuilder = SpreadsheetApp.newRichTextValue().setText(v[0]);
      if (v[0].length && v[0].length > 16) richBuilder = richBuilder.setTextStyle(2, 16, boldStyle);
      return [richBuilder.build()];
    }
  );

  cells.setRichTextValues(richValues);
}

首先,我们避免顺序读取每个单元格的数据,因为有更强大的方法来一次读取范围数据。

此外,我们使用 JS map() 函数的强大功能为每个输入值数组元素获得所需的丰富样式。不要记得在应用样式之前检查输入值是否具有字符串类型和足够的长度。

最后我们将 rich-style 数据写回相同的 sheet 范围。