Google表格脚本用于匹配意外不起作用的单元格值

时间:2017-04-16 19:53:37

标签: google-sheets

我试图编写一个脚本来删除电子表格中的重复项。

我从列中获取所有值,并使用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');
    }
  }
}

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,但我仍然不知道为什么它首先没有工作。

使用Array [i] .toString()并比较这些值似乎可以解决问题。

我只能假设它们存储为不同类型的变量,但考虑到我通过在电子表格中手动输入一些相同的值来检查它,我不知道如何。