【问题标题】:Spreadsheet and time driven trigger电子表格和时间驱动触发器
【发布时间】:2013-09-17 11:33:02
【问题描述】:

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

=importhtml("http://www.eco.hu/currency/table.htm"& year(now()) & month(now()) & day(now()) & hour(now()) & minute(now());"table";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 结果。

我做错了什么?谢谢

【问题讨论】:

    标签: google-apps-script google-sheets triggers google-sheets-formula


    【解决方案1】:

    我建议您考虑永远找不到“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
       }
      }
    }
    

    【讨论】:

    • 你绝对正确!我看不到我的基本错误!非常非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多