更改字体大小,但仅适用于ceratin单元格

时间:2016-04-29 11:29:04

标签: google-apps-script

我收到了if语句的语法错误。如果有人能告诉我我做错了什么,那就太好了。

我正在尝试做的是在编辑某个单元格时将文本字体大小更改为14。但现在的问题是我只需要某些单元格为字体大小14.从A3开始的每一行应该是字体大小14.

所以: A3 - 字体大小14 A8 - 字体大小14 A13 - 字体大小14 A18 - 字体大小14 A23 - 字体大小14 A28 - 字体大小14 等等

function onEdit(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var range = e.range;

  if (range.getA1Notation().substr(range.getA1Notation().length-1, range.getA1Notation().length)) == "3" || range.getA1Notation().substr(range.getA1Notation().length-1, range.getA1Notation().length)) == "8") {
    var cell = sheet.getRange(range)
    cell.setFontSize(14);
  }
}

1 个答案:

答案 0 :(得分:3)

你的超长条件可以减少到range.getRow() % 5 == 3

表面上的范围对象是按值而不是引用复制的,所以你不能只说e.range.setFontSize(14)但它应该等于有效范围,除非你做得非常快。

它没有设置正确的字体大小的原因是你给它一个范围作为范围参数,它必须是索引或A1表示法。

简而言之,您可以将代码缩短为

function onEdit(e) {
  if (e.range.getRow() % 5 == 3) {
    SpreadsheetApp.getActiveRange().setFontSize(14);
  }
}

function onEdit(e) {
  if (e.range.getRow() % 5 == 3) {
    SpreadsheetApp.getActiveSheet().getRange(e.range.getA1Notation()).setFontSize(14);
  }
}

如果你想确定。