2017-07-19 74 views
1

我是新来的谷歌脚本/ JavaScript,我有一个问题,我猜是我指的特定单元格的方式。我要走出我在谷歌这里找到的代码(https://developers.google.com/apps-script/articles/removing_duplicates),除了不是删除重复行(这是他们的脚本所做的),而是想为第一个单元格的背景着色橙色。它现在不能正常工作,而是一些重复的单元格被着色,而另一些却没有,并且一些非重复的单元格被着色,有些不是。我的猜测是,因为该数组是0索引,但工作表是1索引,我需要做sheet.getRange(i + 1,1),但这给了我一个错误。任何人都可以帮助我在正确的方向?Google表单脚本 - 如何引用给定行的单元格?

function checkDuplicates() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var data = sheet.getDataRange().getValues(); 
    var newData = new Array(); 
    for(i in data){ 
    var row = data[i]; 
    var duplicate = false; 
    for(j in newData){ 
     if(row[0] == newData[j][0]){ 
     duplicate = true; 
     Logger.log(i,j) 
     var dup = sheet.getRange(i,1); 
     dup.setBackground('orange')   
     } 
    } 
    if(!duplicate){ 
     newData.push(row); 
    } 
    } 
} 

回答

0

我玩过这个,我发现它对我更好用这种方式。

function checkDuplicates() 
    { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var data = sheet.getDataRange().getValues(); 
    var newData = new Array(); 
    for(var i=0;i<data.length;i++){//changed loop 
    var row = data[i]; 
    var duplicate = false; 
    for(var j=0;j<newData.length;j++){//changed loop 
     if(row[0] == newData[j][0]){ 
     duplicate = true; 
     Logger.log('%s,%s',String(i),String(j));//got and error saying that it required string parameters 
     var dup = sheet.getRange(i+1,1);//changed to i+1 
     dup.setBackground('orange')   
     } 
    } 
    if(!duplicate){ 
     newData.push(row); 
    } 
    } 
} 
+0

似乎工作得很好,谢谢您的全面反馈! – efreeman

相关问题