首页 > 解决方案 > 为什么我的代码没有为同一行索引输入新值?

问题描述

我有一个带有时间戳和用户号码的谷歌表格,用户可以在不同的日子多次输入他们的号码。我正在尝试将其打印到一张新工作表上,该工作表打印姓名、ID 并在他们登录的那一天的列中输入 1。

对于具有多个帐户的条目有一个计数器变量,因此如果是这种情况,我会再次遍历登录列表并找到数字相同但日期不同的位置。然而,当我尝试在第二个 if 语句中设置 daySheet 的值时,它使用第一天而不是列表中的第二天。我使用的数据示例:
12/14/19 test1 12/20/19 test1

它在谷歌表中写的内容:第 11 行:第 14 列:第 20 列:test1 1 1 我很困惑,想知道我是否应该使用更简单的方法,或者我是否以错误的方式思考这个问题?

for(var i = 0; i < sheetLength; i++){
signInLN = sheet.getRange(i+1,3).getValue();
      if(counter > 1){//2nd if
        for(var k = 1; k <= sheetLength; k++){//2nd for loop
          //outer for loop is i
          //inner for loop is k
      var date2 = signInSheet.getRange(k+1,1).getValue().toString();//time stamp in sign in sheet
      var month2 = date2.slice(4,7);
      var day2 = Number(date2.slice(8,10));
      Logger.log(day+": Days "+i+" :I");
      var year = Number(date2.slice(11,15));
          if(signInLN == signInSheet.getRange(k+1,3).getValue() && day != day2){//if lunch number is the same and the days are different
            //lunch numbers are the same, dates are different so add to the k value
            daySheet.getRange(k+10,day+3).setValue(1);
          }
        }//2nd for loop

      //2nd if
      }else if(currentCell.isBlank()){
      daySheet.getRange(i+10, 2).setValue(fullName);//set name to first cell     
      //set PI to second cell
      daySheet.getRange(i+10,3).setValue(pI);
      daySheet.getRange(i+10,day+3).setValue(1);      
      }

    }

标签: google-apps-scriptgoogle-sheets

解决方案


推荐阅读