我对谷歌的剧本场景还有些新奇。我看过很多次了,我脑筋都无法正常地在增量周围包扎。
我创建了一个使用表格的 Google 电子表格。 当有人使用表格提交设备时, 它会使用发送电子邮件功能( MailApp. sendEmail) 将它发送给会计人员 。
到目前为止,我可以完美地填入缩放表,但是当函数运行时,它只在第1行中标出状态变量,而不在列表中继续,然后它发电子邮件给第1行,多次。有人看到我在这上面哪里出错吗?
我需要这个来将数据提交给下一行可用的数据,然后脚本检查 EMAIL_SENT 最后的单元格,如果它没有这个值,我需要它发送电子邮件,然后检查下一行的数据(如果需要从电子表格中手动运行脚本的话 ) 。 我找不到一个类似的问题, 在那里我能够理解我为什么在递增和循环中做错什么 。
S 这里的脚本 :
function sendThisOut() {
// set the current spreadsheet and active sheet
var sheet = SpreadsheetApp.getActiveSheet();
// set range data
var sRow = 2; // first top left cell of data
var cols = 9; // Num of cols
// define initial data source and get values
var dataRange = sheet.getRange(sRow,1,1,cols);
var data = dataRange.getValues();
// increment data
for (var i = 0; i < data.length; ++i) {
var row = data[i];
// define each column
var tstamp = row[0]; // get timestamp (col A)
var acct = row[1]; // define account (col B)
var cname = row[2]; // define client name (col C)
var comment = row[3]; // define comments (col D)
var item1 = row[4]; // defines item 1 (col E)
var item2 = row[5]; // defines item 2 (col F)
var item3 = row[6]; // defines item 3 (col G)
var item4 = row[7]; // defines item 4 (col H)
var status = row[8]; // get status (emailed or no?)
// setup e-mail vars
var emailAddr = "[email protected]";
var subject = "ACCT:" + acct + " " + cname + " - Equipment Request";
// setup content of e-mail
var body = "Hello Accounting,
" +
"Please bill for the contained items on the following account:
" +
"Account: " + acct + "
" +
"Client Name: " + cname + "
" +
"Item 1: " + item1 + "
" +
"Item 2: " + item2 + "
" +
"Item 3: " + item3 + "
" +
"Item 4: " + item4 + "
" +
"Reason for rekey: " + comment;
// check status and if it doesn t have EMAIL_SENT, email it
if (status != "EMAIL_SENT") {
MailApp.sendEmail(emailAddr, subject, body);
// Make sure the cell is updated right away in case the script is interrupted
sheet.getRange(sRow + i, 9).setValue(EMAIL_SENT);
SpreadsheetApp.flush();
};
};
}
谢谢你抽出时间来!