首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的变量会被抛出- Google脚本

为什么我的变量会被抛出- Google脚本
EN

Stack Overflow用户
提问于 2020-12-14 22:13:49
回答 1查看 63关注 0票数 0

下面的代码应该返回excel上列的最大值和最小值。

代码语言:javascript
复制
function maximum(monthly, column) {
  
  monthly = 'January';
  column = 6;
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var worksheet   = spreadsheet.getSheetByName(monthly);
  var rows        = worksheet.getDataRange().getNumRows();
  var vals        = worksheet.getSheetValues(3, column , rows, 1);
  
  var max = 0; 
  var min = vals[0][0] + 1;
  var maxdata = "";
  var maxhora = "";
  var maxcampanha = "";
  var mindata = "";
  var minhora = "";
  var mincampanha = "";
  
  for (var row = 0 ; row < vals.length; row++) {  
    var id = vals[row][0];
    if (id > max) {
      max = id;
      maxdata = worksheet.getRange(row + 3, 1).getValue();
      maxhora = worksheet.getRange(row + 3, 2).getValue();
      maxcampanha = worksheet.getRange(row + 3, 3).getValue();
      
    }
    
    if(id < min){
      min = id;
      mindata = worksheet.getRange(row + 3, 1).getValue();
      minhora = worksheet.getRange(row + 3, 2).getValue();
      mincampanha = worksheet.getRange(row + 3, 3).getValue();
      
    }
  }
  return { 
    "max": (max*100).toFixed(2),
    "maxdata": Utilities.formatDate(new Date(maxdata), "GMT", "dd/MM/yyyy"),
    "maxhora": Utilities.formatDate(new Date(maxhora), "GMT-3:06", "HH:mm:ss"),
    "maxcampanha": maxcampanha, 
    "min": (min*100)*toFixed(2),
    "mindata": Utilities.formatDate(new Date(mindata), "GMT", "dd/MM/yyyy"),
    "minhora": Utilities.formatDate(new Date(minhora), "GMT-3:06", "HH:mm:ss"),
    "mincampanha": mincampanha   
  }
}

此函数正在返回maxdata、maxhora和maxcampanha值,但min值正在消失。当我尝试调试代码时,返回值在下面的imagem中:

调试器:

有人知道会发生什么事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-14 23:14:20

试试这个:

代码语言:javascript
复制
function maximum(monthly, column) {
  monthly='January';
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sh=ss.getSheetByName(monthly);
  var vals=sh.getRange(3,6,sh.getLastRow()-2,1).getValues().flat()
  return {max:vals.sort((a,b)=>{return b-a;})[0],min:vals.sort((a,b)=>{return a-b;})[0]};
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65297245

复制
相关文章

相似问题

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