【发布时间】:2018-01-09 22:54:23
【问题描述】:
我正在尝试运行 IF 函数以将第一列中的日期与“上个月”匹配,将最后一列中的日期与“最新日期”匹配,然后复制并粘贴所有符合此条件的行(不包括第一列和最后一列)到列表的底部。 这是我正在运行的脚本,当我知道至少有 100 行符合此条件时,它没有找到任何匹配项:
function myFunction() {
var MCS = SpreadsheetApp.openById('[ID REMOVED FOR THIS Q]');
var MRB = MCS.getSheetByName('Media Rates Back');
var MRBrange = MRB.getRange(1,1,MRB.getLastRow(),1).getValues();
var dest = MRBrange.filter(String).length + 1;
var LM = new Date();
LM.setDate(1);
LM.setMonth(LM.getMonth()-1);
var LMs = Date.parse(LM);
var Datenew = MRB.getRange(MRB.getLastRow(),MRB.getLastColumn()).getValue();
var Datecol = MRB.getRange(1,6,MRB.getLastRow(),1).getValues();
var Datenews = Date.parse(Datenew);
for(var i=0; i<MRBrange.length; i++) {
if(Date.parse(MRBrange[i])==LMs && Date.parse(Datecol[i])==Datenews ) {
var NewRange = MRB.getRange(i,2,(MRB.getLastRow()-i),5);
var NewRangeV = NewRange.getValues();
var destination = MRB.getRange(MRB.getLastRow()+1,2);
Logger.log(NewRange);
NewRange.copyTo(destination);
}else{
Logger.log(i);
}
}}
任何帮助将不胜感激!
【问题讨论】:
-
您是否尝试将 Date.parse() 方法中的数据放在 if 语句之前的 var 中?另外,您是否尝试将 deux 比较分为两个不同的 if 语句,例如 if(..){if(..){}} ?
-
我刚刚进行了这些更改,但仍然无法正常工作 - 谢谢。我认为我对 [i] 的使用一定有问题
-
确实,您使用的是二维数组,您应该使用 [I][0] 而不是简单地 [I] 来获取正确的值
标签: javascript for-loop if-statement google-apps-script