2017-07-19 81 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

相關問題