【发布时间】:2019-02-22 00:00:54
【问题描述】:
function genRND(e) {
if (e.range.getA1Notation() === 'S1') {
var AS = SpreadsheetApp.getActiveSpreadsheet();
var DSTsheet = AS.getActiveSheet();
var ED = DSTsheet.getRange('T1').getValue();
var SD = DSTsheet.getRange('T2').getValue();
for (var NR = 0; NR < 59; NR++){
if (DSTsheet.getRange('E' & NR).getvalues() != '' &&
DSTsheet.getRange('T' & NR).getvalues() != 'SOLD'){
var RNDNUM = Math.floor(Math.random() * (ED-SD)) + SD;
var rndDATE = DSTsheet.getRange('A' & RNDNUM);
DSTsheet.getRange('S' & NR).setValue(rndDATE);
}
}
}
}
我实际上只需要在单元格 S1 值更改时执行 RANDBETWEEN(每次都可以是其他值),而不是在任何单元格的每次更改时执行 RANDBETWEEN。
因此,触发器设置为 S1,它应该寻找 T1 和 T2 来检测范围的开始和结束。 Math.random 应该在该范围之间运行一些数字。一直到这里都可以!
之后,在循环中它应该检查单位 SOLD 或没有 STATUS,跳过这些并使用 RNDNUM 返回随机日期(日期列表在 A 列中)。
简而言之,它不会返回任何结果。
我已尝试检查 RNDNUM,它确实正确返回了它应该返回的值,但没有返回下一个值 - rndDATE(如果它是重要的值,则应该返回日期格式)!
【问题讨论】:
标签: random google-apps-script google-sheets triggers