花名册的配额脚本

Quota script for a roster

我正在尝试制作一个读取特定列 (B) 的脚本,检查每个单元格中的“这个值是否 < 120?”。

如果值 < 120,我希望脚本将值“1”添加到不同列 (E) 中的相应单元格。

这是我到目前为止想出的办法,但它不起作用,我也不知道为什么。

function quota1() {

 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Roster");


  var workingCell = sheet.getRange("B:B").getValue();

  if(workingCell < 120){
    sheet.getrange("E:E").add(1);

  }

}

Picture of roster for better understanding.

如果 col2 减去 120 将第 5 列递增 1

function quota1() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName("Roster");
  const vs = sh.getRange(1,1,sh.getLastRow(),5).getValues();//get all data
  let vo = vs.map((r,i) =>{
    if(r[1] < 120) {
      return [r[4] + 1];//add one
    } else {
      return [r[4]];//no change
    }
  });
  //Logger.log(JSON.stringify(vo));//easier see the column
  sh.getRange(1,5,vo.length,vo[0].length).setValues(vo)
}

之前:

105 5
106 6
107 7
108 8
109 9
110 10
111 11
112 12
113 13
114 14
115 15
116 16
117 17
118 18
119 19
120 20
121 21
122 22
123 23
124 24

之后:

105 6
106 7
107 8
108 9
109 10
110 11
111 12
112 13
113 14
114 15
115 16
116 17
117 18
118 19
119 20
120 20
121 21
122 22
123 23
124 24