【问题标题】:Sending Email Error -Method Range.getValue发送电子邮件错误 - 方法 Range.getValue
【发布时间】:2016-05-05 04:07:39
【问题描述】:

我使用谷歌电子表格每周向我的用户发送一封包含一些指标数据的电子邮件。我最近收到此错误:

Method Range.getValue is heavily used by the script. File: Code Line: 69

这是第 69 行:

while (marketReportDataSheet.getRange(AGENT_NAME_ROW,currentDataColumn).getValue() != "") 
{
createMarketReport(marketReportDataSheet, currentDataColumn);
currentDataColumn += 1;
}

整个脚本的副本:http://pastebin.com/n70iLPsA

电子邮件仍然发送出去,但错误也在那里。我尝试减少使用该方法的次数,但错误仍然存​​在。我已经查过了这个错误,但即使在 SO 上也找不到任何具体的答案。任何解决方案或正确方向的观点都将不胜感激。

【问题讨论】:

  • while 循环迭代了多少次?如果循环只运行一次,请将其更改为 if 条件。 if (marketReportDataSheet.getRange(AGENT_NAME_ROW,currentDataColumn).getValue() != "")

标签: google-apps-script google-sheets


【解决方案1】:

您对 GAS 中列出的 API 进行的大多数函数调用 将需要比常规 JavaScript 更多的时间。在你的情况下,减少 Range 和 Sheet 类的调用次数

您可以使用以下示例代码:

  var lastCol = marketReportDataSheet.getDataRange().getLastColumn();

  var data = sheet.getRange(AGENT_NAME_ROW,currentDataColumn,1,lastCol).getValues()[0];

      for (var i = 0; i < data.length; i++) {

        if (data[i] != "" && data[i] != undefined) {
          createMarketReport(marketReportDataSheet, i+1);
        }

      }

【讨论】:

  • 我已经输入了上面的示例,但是我现在收到一个错误“ReferenceError: "sheet" is not defined."
  • 您应该将 sheet 替换为您的变量名称:marketReportDataSheet
  • 再次感谢 Max,感谢您的帮助。我这样做了,现在在第 120 行启动电子邮件时出现错误:“无效的电子邮件:卖方的(第 120 行,文件“代码”)”
  • 我想,这个错误与原始问题无关。 Invalid email: Seller's 表示您输入了“卖方”而不是电子邮件到相应的变量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
  • 2016-05-06
  • 2016-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多