2017-08-13 52 views
0

这可能是一个愚蠢的问题,因为我是新的,可能缺少一些简单的东西。如果声明比较谷歌表中的两个单元格不会触发

我想比较两个使用getValues()获取的单元格。 我想知道为什么我的if语句没有触发。

这是我的代码

 for (j in phonesData) { 
    var phonerow = phonesData[j]; 
    Logger.log('phonerow: ' + phonerow); 
    for (k in unSubdata) { 
    var unsubrow = unSubdata[k]; 
      Logger.log('unsubrow: ' + unsubrow); 
     if (phonerow===unsubrow) { 
     Logger.log('equals'); 
     phonesSheet.getRange(startRow + Number(j), 1).setValue(""); 
     } 
    } 
    } 

这里是我的评论的日志。看来,如果应该触发!

[17-08-12 21:19:34:054 PDT] phonerow: (626) 234-7711 
[17-08-12 21:19:34:055 PDT] unsubrow: (626) 235-3150 
[17-08-12 21:19:34:055 PDT] unsubrow: (626) 235-3152 
[17-08-12 21:19:34:055 PDT] phonerow: (626) 235-3150 <These are the same! 
[17-08-12 21:19:34:056 PDT] unsubrow: (626) 235-3150 <These are the same! 
[17-08-12 21:19:34:056 PDT] unsubrow: (626) 235-3152 

回答

0

我想你会发现它可以这样工作。如果你从getValues()得到它,它是一个二维数组。

function theirfunction() 
{ 
    for (j in phonesData) { 
    var phonerow = phonesData[j]; 
    Logger.log('phonerow: ' + phonerow); 
    for (k in unSubdata) { 
    var unsubrow = unSubdata[k]; 
      Logger.log('unsubrow: ' + unsubrow); 
     if (phonerow[0]===unsubrow[0]) { 
     Logger.log('equals'); 
     phonesSheet.getRange(startRow + Number(j), 1).setValue(""); 
     } 
    } 
    } 
} 

我其实用这个版本算出来了。

function myFunction() 
{ 
    var ss=SpreadsheetApp.getActive(); 
    var sh=ss.getActiveSheet(); 
    var r0=sh.getRange(1,1,sh.getLastRow(),1); 
    var r1=sh.getRange(1,2,sh.getLastRow(),1); 
    var vA=r1.getValues(); 
    var vB=r0.getValues(); 
    for(var j=0;j<vA.length;j++) 
    { 
    for(var k=0;k<vB.length;k++) 
    { 
     Logger.log('vB[' + k + '][0]=' + vB[k][0] + ' and ' + 'vA[' + j + '][0]=' + vA[j][0]); 
     if(vA[j][0]==vB[k][0]) 
     { 
     Logger.log('equals'); 
     } 
    } 
    } 
} 
+0

哇这个作品!非常感谢你。太快了。 – mikiekwoods

相关问题