Javascript - дата критерия и дата цикла не совпадают - PullRequest
0 голосов
/ 19 ноября 2018

Это часть кода.Остальная часть кода работает, но в этой части Ive застрял, и я не знаю, почему!

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 и диапазон totRNGval)!При попытке вернуть stDAT и totRNGval [i] оба возвращают дату в одном и том же формате 01/01/2018.Я тоже пробовал в качестве значения, но все равно не повезло!

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

Когда я возвращаю значение, оно всегда равно 0, но точно есть точная дата в диапазоне в качестве даты начала.

Iveтакже проверьте вручную, и это то же самое значение (без поплавков), и оно находит его с любой другой функцией: MATCH, VLOOKUP ...!Я пытался изменить == на ===, но не повезло!

Почему в начале цикла дата не распознается при сравнении с элементами массива?

1 Ответ

0 голосов
/ 20 ноября 2018

В конце я обошел эту проблему, просто добавив формулу в «T1: T2» = Match (T1, DATES! A: A, 0) и вызвав значение из T1 & T2 с помощью getValue ().

Тем не менее, если кто-нибудь знает, почему мой сценарий не сработал первым, пожалуйста, я бы хотел его изучить!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...