谷歌表脚本无法读取和粘贴来自 GOOGLEFINANCE()

问题描述

问题在一个月前就开始了,

一些较旧的表格,我在其中通过 googlesheets 脚本以表格的形式获取股票列表,并计算移动平均线、布林带值等。当我创建工作表时,它过去每分钟处理 4-10 个股票。但现在,它是 0.3 Stock/min。

到目前为止我所做的都是基于关于 stackoverflow 的其他问题。

  1. 删除了所有范围为无限的公式,A:A 到 A1:A100。
  2. 添加了SpreadsheetApp.flush();没有任何帮助
  3. 将睡眠定时器置于基于时间的无限循环中。 (以结束时间执行 While 循环 - 开始时间
  4. 删除了空白行和空白列。
  5. 我认为问题所在的部分代码

  if ( s1.getRange("t1").getValue() == 1)
  {
    var stime = min+sec/60;
    do
  {
  SpreadsheetApp.flush();
  if(s1.getRange("d7").getValue()>0){s1.getRange('e1').copyTo(s1.getRange('d14'),{contentsOnly: true})}
  s1.getRange("t1").setValue(0);
  var pasterow= s1.getRange("d7").getValue();
  if(pasterow<=s1.getRange('t2').getValue()&&s1.getRange("G9").getValue()>0) //Conditions required for pasting values in table
  {
  var t = 'l'+pasterow;    var p = 'm'+pasterow;var q = 'n'+pasterow;var r = 'o'+pasterow;
  var s = 'p'+pasterow;var x = 'q'+pasterow;var u = 'L'+pasterow;var v = 's'+pasterow;var w = 'i'+pasterow; 
   s1.getRange('d6').copyTo(s1.getRange(t),{contentsOnly: true});
   s1.getRange('d5').copyTo(s1.getRange(p),{contentsOnly: true});
   s1.getRange('d8').copyTo(s1.getRange(q),{contentsOnly: true});
   s1.getRange('d9').copyTo(s1.getRange(r),{contentsOnly: true});
   s1.getRange('d10').copyTo(s1.getRange(s),{contentsOnly: true});
   s1.getRange('d11').copyTo(s1.getRange(x),{contentsOnly: true});
   s1.getRange('d16').copyTo(s1.getRange(v),{contentsOnly: true});
   s1.getRange("d18").copyTo(s1.getRange(w),{contentsOnly: true});
  }
    Utilities.sleep(10000);
    var date = new Date();  var day = date.getDay();var hrs = date.getHours();var min = date.getMinutes(); var sec = date.getSeconds()+1;
    var etime =min+sec/60;if(stime>=55&&etime<10){etime = etime+60;};
  s1.getRange("G9").setValue(etime)  
  } while (etime-stime<1.95 && pasterow<s1.getRange('t2').getValue()+1 && s1.getRange('ad2').getValue()==0); 
    
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)