javascript - Javascript - 标准日期和循环日期不匹配
问题描述
这是代码的一部分。其余代码有效,但在这部分我卡住了,我不知道为什么!
function rndDATgen(F){
var fRNG = SpreadsheetApp.getActiveRange();
var fROW = fRNG.getRow();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var SRCsheet = ss.getSheetByName("Dates");
var DSTsheet = ss.getActiveSheet();
var rngDATE = SRCsheet.getDataRange();
var valDATE = rngDATE.getValues();
var colSRNG = DSTsheet.getRange('A1:ZZ7');
var colVALUES = colSRNG.getValues();
var stDAT = DSTsheet.getRange("S1").getValue();
var enDAT = DSTsheet.getRange("S2").getValue();
var DSTclr = 7;
var DSTrow = 7;
var nDAT = 0;
var DSTlr = 7;
var DSTc = DSTsheet.getRange(1, 9, 500,1);
var DSTvalues = DSTc.getValues();
while (DSTvalues[DSTlr - 1][0] != ""){
DSTlr++;
}
DSTlr = DSTlr - 1;
var totRNGstat = DSTsheet.getRange('T7:T' + DSTlr);
var totRNGvalSTAT = totRNGstat.getValues();
var totRNG = SRCsheet.getRange('A1:A100');
var totRNGval = totRNG.getValues();
var totRNGdat = DSTsheet.getRange('S7:S' + DSTlr);
var totRNGvalDAT = totRNG.getValues();
var stDATrow = 0;
var enDATrow = 0;
for (var i=0; i<100; i++) {
if (totRNGval[i] == stDAT) {
stDATrow = i + 1;
}
}
在这最后一段代码中,我尝试迭代以查找数组中某个日期的位置(在这种情况下,开始日期 = stDAT 和范围 totRNGval)!通过尝试返回 stDAT 和 totRNGval[i],两者都以相同的格式返回日期 01/01/2018。我也尝试过价值,但仍然没有运气!
for (var i=0; i<100; i++) {
if (totRNGval[i] == stDAT) {
stDATrow = i + 1;
}
}
当我返回值时,它始终为 0,但可以肯定在范围内有确切的日期作为开始日期。
我还手动检查,它是相同的值(没有浮点数),它确实找到了任何其他功能:MATCH,VLOOKUP ...!我尝试将 == 更改为 ===,但没有运气!
为什么在与数组元素进行比较时无法识别循环开始日期?
解决方案
最后,我绕过了这个问题,只需在“T1:T2”中添加公式 =Match(T1, DATES!A:A,0) 并使用 getValue() 从 T1 和 T2 调用值。
不过,如果有人知道为什么我的脚本没有首先运行,我想学习它!
推荐阅读
- vim - 不是编辑器命令::Ex
- python - 错误:“fill_between() 缺少 1 个必需的位置参数:'y1'”在区域填充线图中使用 fill_between
- r - 如何使用 ggplot2 制作冲积图以显示来自 spss 的交叉制表结果?
- c++ - 如果可以,我们可以使用构造函数重新抛出异常,那为什么?
- java - 为什么我的 FreeTypeFont 模糊不清?
- typescript - 生成具有数组访问权限的类型引用节点
- google-cloud-platform - 用于创建用户的 Gsuite directory_v1 api 出现错误 403
- docker - Docker,将所有用户目录挂载到容器
- image - 是否可以在张量流中使用初始模型对 1000 多个对象进行分类?
- python - 注释功能给我一个错误的结果