Dpu*_*tti 0 javascript google-apps google-sheets google-apps-script
我是 Google 应用脚本新手,有一个包含三列的电子表格:名称、过期和上次联系:https ://docs.google.com/spreadsheets/d/1W04JiFZwpGCD-qddUkNJ9xQ1xiYwZnGhissudF1EvxM/edit?usp=sharing
我想向自己发送一封电子邮件提醒,其中包含 B 列中逾期金额的任何人的姓名。
到目前为止,我只能编写一个脚本,为第 2 行向自己发送电子邮件。我不知道如何让脚本循环遍历 B 列中的值。
这是我的脚本:
function sendEmail() {
var overdueRange = SpreadsheetApp.getActiveSpreadsheet().getRange("B2");
var overdueValue = overdueRange.getValue();
if (overdueValue === "Overdue"){
var nameRange = SpreadsheetApp.getActiveSpreadsheet().getRange("A2");
var name = nameRange.getValues();
var message = 'Reach out to ' + name
var subject = 'Reach out to this person.'
MailApp.sendEmail('myemail@email.com', subject, message);
}
}
sendEmail()
Run Code Online (Sandbox Code Playgroud)
只需要几点就可以清楚地说明该过程:
我假设您是 sendEmail()从脚本编辑器执行的。这样,由于你也有sendEmail()函数外部,所以你最终会调用sendEmail()两次。删除函数的“全局”调用,并仅从sendEmail()脚本编辑器中调用。
不建议应用于getRange电子表格对象。通过名称或位置定义特定工作表。在下面的示例脚本中,我通过名称 ( Sheet1) 定义工作表。将该名称更改为您的实际情况。
name您的代码中是一个二维数组而不是单个值。请务必小心,因为这不是正确的方法。
在下面的脚本中,我定义了一个列数组A和B. 名称在 列 中定义A,逾期状态在 列 中定义B。通过这种方式,您可以迭代该数组,并通过访问数组本身来获取每次迭代的单个值。我使用了forEach,但请随意使用您自己的迭代方法。
function sendEmail() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet1'); // change Sheet1 to the name of your sheet
const data = sh.getRange('A2:B'+sh.getLastRow()).getValues();
data.forEach(r=>{
let overdueValue = r[1];
if (overdueValue === "Overdue"){
let name = r[0];
let message = 'Reach out to ' + name;
let subject = 'Reach out to this person.'
MailApp.sendEmail('myemail@email.com', subject, message);
}
});
}
Run Code Online (Sandbox Code Playgroud)
适用于脚本的工作表:
| 归档时间: |
|
| 查看次数: |
6550 次 |
| 最近记录: |