所有人的好日子
我这里有脚本,我不太了解编写函数。我设法让frankenstein找到了一些我发现它可以运行的脚本。它适用于一个功能,但你会看到我需要它来完成所有3张纸,当我复制该功能时,我得到了太多的触发错误。
我在这个doc中有4张纸,一个控件(Master),然后从那里拉出数据(AZ,CA,NH)。
然后我有一个从该数据中提取随机线的公式。在3页(AZ,CA,NH)的每一页上,我都会生成随机库存零件周期计数列表。
我收到了电子邮件的工作,然后我通过在我的公式中添加= today()和if语句以使其在编辑时重新计算来做一个解决方法。并获得编辑工作簿的脚本(替换单元格(G1)内容)。效果很好。
这是问题所在。我可以将其压缩成一个功能吗?页面(AZ,CA,NH)的相同内容,相同的行数和列数以及相同的数据位置。这是我的代码。
*看起来我的代码或其他东西空间不足。我基本上重复了这两次,并将工作表名称更改为“CA”& “NH”函数和触发器发送到email_ca()& email_nh()以及myRecalculate()
//AZ Script
function email() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var bulk = ss.getSheetByName("AZ");
var lastrow = bulk.getLastRow();
var data1 = bulk.getRange(6, 7, lastrow).getValues(); // part number column
var report = ""
var email ="";
for(var i in data1){
if(data1[i]!="") email += "<tr><td style='padding:5px'>" + data1[i];
}
report ="<table><tr><th>Part Number</th></tr>" + email + "</table>";
MailApp.sendEmail(Session.getActiveUser().getEmail(),
"Cycle Count", report, {htmlBody: report});
}
ScriptApp.newTrigger("email")
.timeBased()
.onWeekDay(ScriptApp.WeekDay.THURSDAY)
.create();
function myRecalculate() {
// The code below opens a spreadsheet using its ID
// Note that the spreadsheet is NOT physically opened on the client side.
// It is opened on the server only (for modification by the script).
var ss = SpreadsheetApp.openById("13SAt0XQgHQz1JRhXyvwbL6ASfnlLjvFXJQsHfYRM1nE");
var sheet = ss.getSheetByName("AZ");
var cell = sheet.getRange('G1')
cell.setValue("Randomizer!!!")
}
ScriptApp.newTrigger("myRecalculate")
.timeBased()
.onWeekDay(ScriptApp.WeekDay.WEDNESDAY)
.create();
答案 0 :(得分:0)
想通了。
//AZ Script
function email() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var az = ss.getSheetByName("AZ");
var lastrow = az.getLastRow();
var data1 = az.getRange(2, 7, lastrow).getValues(); // part number column
var ca = ss.getSheetByName("CA");
var lastrow_ca = ca.getLastRow();
var data2 = ca.getRange(2, 7, lastrow_ca).getValues(); // part number column
var nh = ss.getSheetByName("NH");
var lastrow_nh = nh.getLastRow();
var data3 = nh.getRange(2, 7, lastrow_nh).getValues(); // part number column
var report = ""
var email ="";
for(var i in data1){
if(data1[i]!="") email += "<tr><td style='padding:5px'>" + data1[i] + "</td><td style='padding:5px'>" + data2[i] + "</td><td style='padding:5px'>" + data3[i] + "</td></tr>";
}
report = "<table style='width:100%'><tr bgcolor='#f1f1f1' style='padding:5px'><th>PHX Lotto</th><th>CA Lotto</th><th>NH Lotto</th></tr><tr>" + email + "</tr></table>";
MailApp.sendEmail(Session.getActiveUser().getEmail(),
"Cycle Count", report, {htmlBody: report});
}