电子表格和时间驱动程序触发器

时间:2013-09-17 11:33:03

标签: google-apps-script google-sheets

在电子表格单元格中,我有以下公式:

= importhtml(“http://www.eco.hu/currency/table.htm”& year(now())& month(now())& day(now())& hour(now())& minute(now) ()); “表”; 1)

也会刷新其他一些单元格值。

我每天都会从不同的细胞中保存一些值。 我有以下功能:

function Historia() {
 Utilities.sleep(15000);
 var ss= SpreadsheetApp.setActiveSheet(XXX);
 var rows = ss.getDataRange();
 var values = rows.getValues();

 for (var i=0;i<values.length; i++) { 
      var j = values[i].indexOf("Portf" );
      if (j > -1) { var aktPort = values[i][j+1]; }
  }
  var ss= SpreadsheetApp.setActiveSheet(Hist);
  ss.getRange(4,2).setValue(aktPort) ;

  }

当我手工运行Historia时,它每次都很完美,带来正确的结果。当我使用此功能制作时间驱动的日期计时器时,它几乎总是在我的电子表格中带来#N / A结果。

我做错了什么?感谢

1 个答案:

答案 0 :(得分:0)

我建议你考虑一下从未找到“Portf”的可能性。

以下是您的代码的重新编写:

function Historia() {
 Utilities.sleep(15000);
 var ss= SpreadsheetApp.setActiveSheet(XXX);
 var rows = ss.getDataRange();
 var values = rows.getValues();
 var aktPort = "";

 for (var i=0;i<values.length; i++) { 
   var j = values[i].indexOf("Portf" );
   if (j > -1) { 
     aktPort = values[i][j+1]; 
     var ss= SpreadsheetApp.setActiveSheet(Hist);
     ss.getRange(4,2).setValue(aktPort);  // since there's only one storage location
     break;                               // no need to look further
   }
  }
}