【问题标题】:Google sheet script, return range value is 3 cells off谷歌工作表脚本,返回范围值为 3 个单元格
【发布时间】:2018-03-16 15:13:53
【问题描述】:

我使用触发器编写了这段代码,以便在计划中剩余的特定天数时向我发送电子邮件。一切正常,但对于变量fournirprojet,我的电子邮件内容总是间隔3 行。我认为这可能是因为getRange 与这些变量相关联,但由于我对脚本相当陌生,所以我不知道如何修复它。

提前致谢

function checkValue()
{
var NOMBREDELIGNES = 3000;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getRange(3, 8, NOMBREDELIGNES); // ligne de départ,   colonne, nombre de lignes
var values = range.getValues();

for (var row in values) {
for (var col in values[row]) {
  var crissedevaleur = values[row][col];
  if(crissedevaleur == 1 || crissedevaleur == 3 || crissedevaleur == 7)     {
    var projet = sheet.getRange(row,1).getValue(); 
    var fournir = sheet.getRange(row,4).getValue();  
    MailApp.sendEmail("dufourlarouche@gotoast.ca","Rappel de votre  compte en banque [" + projet + "]" ,"Échéance dans " + crissedevaleur + " jours pour \n\n" + fournir);
      }
    }
  }
}

【问题讨论】:

  • 您能否在问题中包含一个示例,说明您期望得到什么以及目前得到什么?见MCVEhow to ask
  • 使用此功能,我希望收到一封电子邮件,其中包含在第 8 列中找到的每个“crissedevaleur”值。在该电子邮件中,我希望收到有关与在上找到的值相关联的信息的信息第 1 列和第 4 列中的同一行,即“var Projet”和“varfournir”

标签: email google-apps-script google-sheets


【解决方案1】:

当您在 Google Apps 脚本中使用 range.getValues() 时,您会得到一个双精度数组。当您遍历数组时,行从 0 开始并向上计数。

行值对应于数组中的行,而不是工作表上的行。要解决此问题,您只需将 range.getRow() 或 3 添加到您正在获取其值的行。

用途:

var projet = sheet.getRange(row+range.getRow(),1).getValue(); 
var fournir = sheet.getRange(row+range.getRow(),4).getValue(); 

var projet = sheet.getRange(row+3,1).getValue(); 
var fournir = sheet.getRange(row+3,4).getValue(); 

【讨论】:

  • 您好,感谢您的回答。它仍然无法正常工作。这就是它的作用。假设它在第 2 行(第 5 行,因为它从 3 开始)找到了一个值。它添加 2+3 并返回第 23 行第 1 列和第 23 行第 4 列的值
  • 找到了解决方案!感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多