下面的代码应该返回excel上列的最大值和最小值。
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中:
调试器:

有人知道会发生什么事吗?
发布于 2020-12-14 23:14:20
试试这个:
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]};
}https://stackoverflow.com/questions/65297245
复制相似问题