Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌应用程序脚本写入电子表格栏落后一步_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 谷歌应用程序脚本写入电子表格栏落后一步

Javascript 谷歌应用程序脚本写入电子表格栏落后一步,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,奇怪的问题。我正在用谷歌应用程序脚本编写一个脚本。脚本的一部分从1个范围/数组(“a”)中获取值,在第二个范围/数组(“b”)中查找值,然后将第三个范围/数组(“c”)中的相应值写入电子表格的F列。它基本上是一个vlookup 当我检查代码、调试器等时,一切看起来都很好。并且输出到工作表中看起来也不错。除了运行程序外,工作表中缺少最后一个值。当我使用调试器缓慢运行程序时,似乎出于某种原因,在下一轮循环完成之前,不会将值打印到F列。基于当时变量的值,这实际上没有任何意义。例如,当i=4时,它应该打

奇怪的问题。我正在用谷歌应用程序脚本编写一个脚本。脚本的一部分从1个范围/数组(“a”)中获取值,在第二个范围/数组(“b”)中查找值,然后将第三个范围/数组(“c”)中的相应值写入电子表格的F列。它基本上是一个vlookup

当我检查代码、调试器等时,一切看起来都很好。并且输出到工作表中看起来也不错。除了运行程序外,工作表中缺少最后一个值。当我使用调试器缓慢运行程序时,似乎出于某种原因,在下一轮循环完成之前,不会将值打印到F列。基于当时变量的值,这实际上没有任何意义。例如,当i=4时,它应该打印到F6。但它会将上一个值打印到F5。所有正确的值最终都在正确的位置(最后一个除外),但发生这种情况时,计时似乎是关闭的,这就是我丢失最后一个值的原因

注意:我试着看看是否只是一个时间延迟,但事实似乎并非如此。我重新加载了电子表格,等了一会儿,等等。它只是落后了一步

代码如下,我认为相当简单。任何帮助都将不胜感激

loop1:
  for(i=0;i<a.length;i++){
    loop2:
    for(j=0;j<b.length;j++){
      if(a[i].valueOf() == b[j].valueOf()){
        sheet.getRange("F"+(i+2)).setValue(c[j]);
        break loop2;
      }
    }
  }
loop1:

对于(i=0;i我尝试用以下代码重新创建您的情况:

function myFunction() {
  var a = ['one','6','match'];
  var b = ['two','Vee','match'];
  var c = ['three','Vee','match'];

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getActiveSheet();

  loop1:
    for(i=0;i<a.length;i++){
      loop2:
      for(j=0;j<b.length;j++){
        //Logger.log('a[i].valueOf() ' + a[i])
        //Logger.log('b[j].valueOf() ' + b[j])

        Logger.log(a[i].valueOf() == b[j].valueOf());
        if (a[i].valueOf() == b[j].valueOf()) {
          Logger.log('they match!');
          Logger.log('i: ' + i);
          Logger.log('j: ' + j);
          sh.getRange("F"+(i+2)).setValue(c[j]);
          break loop2;
        }
      }
    }
};

我试图用以下代码重新创建您的情况:

function myFunction() {
  var a = ['one','6','match'];
  var b = ['two','Vee','match'];
  var c = ['three','Vee','match'];

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getActiveSheet();

  loop1:
    for(i=0;i<a.length;i++){
      loop2:
      for(j=0;j<b.length;j++){
        //Logger.log('a[i].valueOf() ' + a[i])
        //Logger.log('b[j].valueOf() ' + b[j])

        Logger.log(a[i].valueOf() == b[j].valueOf());
        if (a[i].valueOf() == b[j].valueOf()) {
          Logger.log('they match!');
          Logger.log('i: ' + i);
          Logger.log('j: ' + j);
          sh.getRange("F"+(i+2)).setValue(c[j]);
          break loop2;
        }
      }
    }
};