JavaScript-条件日期和循环日期不匹配

时间:2018-11-19 20:48:29

标签: javascript loops google-apps-script google-sheets

这是代码的一部分。其余代码可以正常工作,但在这一部分上,我已经停滞了,我不知道为什么!

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;
}
}

在这最后的代码块中,Ive试图迭代查找数组中的某个日期(在这种情况下,开始日期= stDAT,范围为toRRNGval)!通过尝试返回stDAT和totRNGval [i],两者都以相同的格式返回日期01/01/2018。我也尝试过有价值,但还是没有运气!

for (var i=0; i<100; i++) {
if (totRNGval[i] == stDAT) {
stDATrow = i + 1;
}
}

当我返回值时,它始终为0,但可以确定范围内有确切的日期作为开始日期。

我也手动检查了它是否是相同的值(没有浮点数),并使用其他任何功能找到了它:MATCH,VLOOKUP ...!香港专业教育学院试图将==更改为===,但是没有运气!

为什么与数组元素比较时无法识别循环开始日期?

1 个答案:

答案 0 :(得分:0)

最后,我仅通过在“ T1:T2”中添加公式= Match(T1,DATES!A:A,0)并使用getValue()从T1和T2调用值来绕过了这个问题。

还是,如果有人知道为什么我的脚本不能首先使用,请尝试学习!