Google apps script 用气体将柱添加到板上

Google apps script 用气体将柱添加到板上,google-apps-script,Google Apps Script,在我的谷歌工作表中,最后一列数据是S。我正在尝试创建一个脚本,如果S中的值以FIN开头,它将在行中循环并将“test”放在列T中 function daysSinceContact() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var mainSheet = ss.getSheetByName("test_sheet"); var main_rows = mainSheet.getDataRange().getValues(

在我的谷歌工作表中,最后一列数据是S。我正在尝试创建一个脚本,如果S中的值以FIN开头,它将在行中循环并将“test”放在列T中

function daysSinceContact() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var mainSheet = ss.getSheetByName("test_sheet");
  var main_rows = mainSheet.getDataRange().getValues();

  var updated = [];
  for (i in main_rows) {
    var row = main_rows[i]
       if ((row[18].substring(0, 3) == 'FIN') ) {
         Logger.log(row[18])
           row[19]=='test'
       }

    updated.push(row);
  }
  var main_range = mainSheet.getDataRange();
  mainSheet.getDataRange().setValues(updated);

}

但是,当我运行此命令时,在T列中看不到任何内容。我做错了什么?

这个修改如何

修改点: 当它用“test”代替第[19]行时,它使用第[19]行=“test”。 “疯狂的伊万”指出了这一点 对于没有“FIN”的行,添加到行[19]。 这样,二维数组中每个元素的长度就变得相同了。 getDataRange检索到的范围与当前数据的范围不同。因为增加了一列。 因此使用getRange1,1,updated.length,updated[0]。length。 上面几点反映的修改脚本如下

修改脚本:
如果我误解了你的问题,请告诉我。我想修改它。

@user61629欢迎。也谢谢。
function daysSinceContact() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var mainSheet = ss.getSheetByName("test_sheet");
  var main_rows = mainSheet.getDataRange().getValues();

  var updated = [];
  for (i in main_rows) {
    var row = main_rows[i]
       if ((row[18].substring(0, 3) == 'FIN') ) {
         Logger.log(row[18])
           row[19] = 'test'
       } else {
         row[19] = ''; // Added
       }

    updated.push(row);
  }
  // var main_range = mainSheet.getDataRange(); // This is not used.
  mainSheet.getRange(1, 1, updated.length, updated[0].length).setValues(updated); // Modified

}