Javascript 为什么我的循环没有';你不在谷歌工作吗?

Javascript 为什么我的循环没有';你不在谷歌工作吗?,javascript,for-loop,google-apps-script,google-sheets,Javascript,For Loop,Google Apps Script,Google Sheets,所以,我一直在尝试这样做: 我已经粘贴了这段代码,它运行得非常好(唯一的缺点是eventID总是占据最后一列,而不是我选择的那一列) 然后我写了这段代码: function createCalendar() { var sheet = SpreadsheetApp.getActiveSheet(); var calendar = CalendarApp.getCalendarById('YES MY ID IS HERE BUT I REMOVED TO POST'); var

所以,我一直在尝试这样做:

我已经粘贴了这段代码,它运行得非常好(唯一的缺点是eventID总是占据最后一列,而不是我选择的那一列)

然后我写了这段代码:

function createCalendar() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var calendar = CalendarApp.getCalendarById('YES MY ID IS HERE BUT I REMOVED TO POST');
 
  var startRow = 2;  
  var numRows = sheet.getLastRow();   
  var numColumns = sheet.getLastColumn();
 
  var dataRange = sheet.getRange(startRow, 1, numRows-1, numColumns);
  var data = dataRange.getValues();
 
  var complete = "on";
  
  
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var aplicador = row[2];
    var data = new Date(row[9]);
    var datafim = new Date(row[11]);
    var eventID = row[22];  
    
    if (eventID != complete) {
      var currentCell = sheet.getRange(startRow + i, numColumns);
      calendar.createEvent(aplicador, data, datafim);
    
      currentCell.setValue(complete);
    }
   
  }
  console.log(data.length)
}
函数createCalendar(){
var sheet=SpreadsheetApp.getActiveSheet();
var calendar=CalendarApp.getCalendarById('是,我的ID在这里,但我已删除以发布');
var startRow=2;
var numRows=sheet.getLastRow();
var numColumns=sheet.getLastColumn();
var dataRange=sheet.getRange(startRow,1,numRows-1,numColumns);
var data=dataRange.getValues();
var complete=“on”;
对于(变量i=0;i
这是完全相同的代码,除了我改变了一些变量。但它不起作用。 它在第一行做得很好,但是循环没有发生


为什么会这样?

您声明了两次
数据,一次是在循环中声明,一次是在电子表格中声明所有数据

试着这样做:

function createCalendar() {
  const ss=SpreadsheetApp.getActive();
  const sh=ss.getActiveSheet();
  const calendar=CalendarApp.getCalendarById('YES MY ID IS HERE BUT I REMOVED TO POST');
  const shsr=2;
  const rg=sh.getRange(shsr,1,sh.getLastRow()-shsr+1,sh.getLastColumn());
  var data=rg.getValues();
  const complete="on";
  const lc=sh.getLastColumn();
  data.forEach(function(r,i){
    let aplicador=r[2]
    let dts=new Date(r[9])
    let dte=new Date(r[11]);
    let eventId=r[22];
    if(eventId!="on") {
      calendar.createEvent(aplicador,dts, dte);
      sh.getRange(shsr+i,22).setValue("on")+
    }
  });
}
欢迎光临。请添加示例电子表格数据以及执行日志。