2017-04-16 67 views
0

我正在嘗試編寫腳本以從電子表格中刪除重複項。Google表格腳本匹配單元格的值意外地不起作用

我從列中獲取所有值,並使用getValues()將它們放入數組中。然後我使用for循環來比較array [i]和array [i + 1]。如果發現匹配,則執行一些代碼以刪除有問題的數據。

不幸的是,沒有找到匹配。

我試過我手動輸入的數組上的代碼,它工作。然後我嘗試了我的代碼,將手動編碼的數組與電子表格填充數組進行比較;它再次運作。當我嘗試將電子表格值與其他電子表格值進行比較時,就會出現問題。他們從不匹配。地球上發生了什麼?

function RemoveDuplicates() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var IDRangeString = "H2:H"+ getFirstEmptyRow(); 
    var IDRange = sheet.getRange(IDRangeString); 
    var IDArray = IDRange.getValues(); 
    Logger.log('started RemoveDuplicates(), active sheet is ' + sheet.getName() 
+ ', specified range is ' + IDRangeString); 

    for(var i = 0; i < IDArray.length; i++) { 
    Logger.log('comparing index ' + i + ': ' + IDArray[i] + ' with index ' + 
(i+1) + ': ' + IDArray[i+1]); 

    if(IDArray[i] == IDArray[i+1]) { 
     Logger.log('Match Found'); 
    } else if(IDArray[i] != IDArray[i+1]) { 
     Logger.log('Match not found'); 
    } else { 
     Logger.log('Match neither found nor not found'); 
    } 
    } 
} 

回答

0

那麼我解決了這個問題,但我仍然不知道爲什麼它不起作用。

使用數組[i] .toString()和比較這些值似乎有伎倆。

我只能假設他們被存儲爲不同類型的變量,但考慮到我通過手動輸入一些相同的值來檢查它,我不知道如何。

+0

獲取值函數返回一個二維數組,而您試圖在上面的代碼中比較一維數組。數組[I] .tostring本質上將索引I處的每個數組轉換爲一個字符串,並且您可以檢查該數組。你可以試試這個,而不是array [i] [0] == array [i + 1] [0]。 –

相關問題