我有一个程序,它逐行遍历电子表格,如果TotalSOH<=MinSOH构建了两个阵列,即:PalletNo[j]&SOH[j]。我能够返回PalletNo[j]&SOH[j]在我的MailApp函数中作为消息(请参阅下面代码中的"消息"变量(,手动循环遍历数组,这样我就知道基本代码是有效的,但我想创建一个循环,以便它为我做这件事,因为数组将来可能比两个元素大得多。
我想把这条信息读一遍(每行(;
托盘编号[0]SOH[0]
托盘编号[1]SOH[1]
托盘编号[2]SOH[2]等
有人能帮忙吗?即使是一些方向也很好,但不一定是答案。
我试图在";消息";变量,甚至在MailApp函数本身中,但这造成了语法问题。
谢谢你的帮助,克里斯。
function LowT4KANBANSOHEmail()
{
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName ('T4 Pallet (SOH) (Power Bi)');
var now = new Date();
var startRow = 1;
var numRows = sheet.getLastRow();
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
var data = dataRange.getValues();
var j = 0;
var PalletNo = Array();
var SOH = Array();
for (var i = 0; i < data.length; ++i)
{
var row = data[i];
var TotalSOH = row[3];
var MinSOH = row [4];
if (TotalSOH <= MinSOH){
PalletNo[j] = row[0];
SOH[j] = row[3];
j=j+1;
}else
{
}
}//End of for loop
var message =
PalletNo[0]+
" (x"+
SOH[0]+
")"+
"n"+
PalletNo[1]+
" (x"+
SOH[1]+
")"+
"n";
MailApp.sendEmail("emailaddress",
"Subject",
message
);
}//End of function
我已经解决了自己的问题。
我也是Javascript和这个论坛的新手,我想我应该把答案反馈给社区,以备将来有人遇到类似问题时参考。作为一个初学者,很难知道如何做出贡献,而不是觉得自己总是在问问题。
我创建了一个新的数组,每个元素/索引表示最后一条消息中的行号。为了将每一行拆分,我使用了.injoin功能。
代码如下(有些语法可能是错误的,因为我可能在删除机密信息时意外删除了一些(;
function Answer()
{
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName ('Spreadsheet');
var now = new Date();
var startRow = 1;
var numRows = sheet.getLastRow();
var dataRange = sheet.getRange(startRow, 1, numRows, sheet.getLastColumn());
var data = dataRange.getValues();
var j = 0;
var PalletNo = Array();
var SOH = Array();
var PalletNoSOH = Array();
for (var i = 0; i < data.length; ++i)
{
var row = data[i];
var TotalSOH = row[3];
var MinSOH = row [4];
if (TotalSOH <= MinSOH){
PalletNo[j] = row[0];
SOH[j] = row[3];
PalletNoSOH[j] = (PalletNo[j].toString() + " (x" + SOH[j].toString() + ")");
j=j+1;
}else
{
}
}//End of for loop
MailApp.sendEmail("emailaddress",
"Subject",
PalletNoSOH.join("n")
);
}//End of function