首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从多个工作簿/工作表中提取区域

从多个工作簿/工作表中提取区域
EN

Stack Overflow用户
提问于 2019-06-12 15:16:05
回答 2查看 54关注 0票数 0

我有一个单元格范围(例如: L1:S22),当这些值在活动电子表格的特定范围内大于0时,将发送电子邮件警报

到目前为止,它只从活动的电子表格范围发送。我希望从存储在文件夹中的所有其他工作簿中调用它,并根据该文件夹发送电子邮件

代码语言:javascript
复制
function CheckSales(){

var app = SpreadsheetApp;
var activeSheet = app.getActiveSpreadsheet().getActiveSheet();

var data=activeSheet.getDataRange().getValues();

var emailAddress=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange("B2").getValue();
var resultArr=[];

//To Loop through the whole data Rows
for(var i=1;i<data.length;i++)
  {
    //Takes columns from L to S (To loop through the Columns)
    for(var j=11;j<19;j++)
      {
        var cellVal=data[i][j];
        Logger.log(cellVal)
        if(cellVal>0)
        {
           //Stores the Part No, Month Header Value of the Column, Cell Value which is greater then 0
           resultArr.push([data[i][0],data[0][j],cellVal])
        }
      }
  }
  if(resultArr.length>0)
  {
    var subject = 'Range exceeded Alert';

    //Creates a body through the obtained values
    var body='';
    for(var m=0;m<resultArr.length;m++)
       {
         body+="For Part No "+resultArr[m][0].toString()+" and Month "+resultArr[m][1].toString()+", Value is "+resultArr[m][2].toString()+"<br>";
       }

      MailApp.sendEmail({to:emailAddress,subject:subject,htmlBody:body});
   }

}

现在,输出显示了6个月后超过值的零件号。

编号为60009257001、月度为7MO的物料编号为60009259007、月度为12MO的物料编号为28032、物料编号为60009260012、月度为12MO的物料编号为74670、物料编号为60009260013、月度为10MO的物料编号为17600、月度为26389

我希望输出显示来自不同工作簿的所有零件号

EN

回答 2

Stack Overflow用户

发布于 2019-06-13 10:00:05

代码语言:javascript
复制
for (var i in activeSheet) {
    SpreadsheetApp.setActiveSheet(activeSheet[i])
    var sheet = app.getActiveSheet();
    var data = activeSheet[i].getDataRange().getValues();
}
票数 1
EN

Stack Overflow用户

发布于 2019-06-12 16:31:06

您可以使用与这里使用" data“变量相同的方式遍历不同的数据范围。

例如,

代码语言:javascript
复制
var data=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Battery').getDataRange().getValues();

//For Loop for data

data2=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Other Sheet").getDataRange().getValues();

//for Loop for data2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56556586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档