javascript - 电子表格的 Google 脚本(If 语句)

标签 javascript google-apps-script google-sheets

我希望有人能帮助我解决这个问题。我是编码新手。我有一个谷歌电子表格,其中有一个可以推送电子邮件的脚本。我试图让脚本忽略脚本已发送电子邮件的行。

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp or FormApp.
  ui.createMenu('Email Menu')
    .addItem('Send Email', 'myFunction')
    .addSeparator()
    .addToUi();
};

function myFunction() {
  var msg = 'Email sent!';

  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var sheet = ss.getActiveSheet();
  var range = sheet.getDataRange();
  var values = range.getValues();

  var EMAIL_SENT = "EMAIL_SENT";
  var startRow = 2;

  for (i=1; i<values.length;i++) {

    //sent = values[i][4]; //added this in to try and skip a row if "X" was in Sent Column

    //if (sent ==" ", ) //added this in to try and skip a row if "X" was in Send Column

    var email = values[i][0];
    var name = values[i][i];
    var subject = values[i][2];
    var body = values[i][3];
    var sent = values[i][5];

    if (sent != EMAIL_SENT){
      MailApp.sendEmail(email, subject, body);
      sheet.getRange(startRow + i,5).setValue(EMAIL_SENT);
      SpreadsheetApp.getUi().alert(msg);
    }
 }}

Google spreadsheet

最佳答案

在 for 循环中实现以下更改:

for (i=1; i<values.length;i++) {

  var email = values[i][0];  
  var name = values[i][1]; //not [i][i] !  
  var subject = values[i][2];
  var body = values[i][3];  
  var sent = values[i][4];

  if (sent !== EMAIL_SENT){
    sheet.getRange(i+1,5).setValue(EMAIL_SENT);
  }

}

基本上摆脱 startRow 变量(如果您不在其他地方使用)并仅使用 (i+1,5) 将“EMAIL_SENT”放置在右列中。为了清楚起见,我删除了您的部分代码。

关于javascript - 电子表格的 Google 脚本(If 语句),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43260291/

相关文章:

javascript - 是否可以在 TypeScript 中定义属性名称的类型

javascript - 在 REQUEST nodejs 中返回 json 主体

google-apps-script - 如何同步调用google apps脚本服务器端函数?

google-apps-script - 谷歌电子表格 : Array formula if/and to return "No" if 3 previous cells are blank

javascript - 在 GAS 中使用全局变量是否可取?有什么缺点吗?

javascript - 如何使用ajax动态添加类?

javascript - map 在检查元素或缩放后工作

javascript - 将表单数据提交到 Google 表格时 Google App 脚本出错

google-apps-script - Google应用程序脚本replaceText仅替换第一次出现的匹配字符串

excel - Google 电子表格 - 如果另一个单元格包含 N 个字符串之一,则对单元格值求和