【问题标题】:Pop up dialog box is value is duplicate弹出对话框是值重复
【发布时间】:2017-12-15 14:01:09
【问题描述】:

我正在尝试创建一个谷歌脚本,它将扫描一个谷歌表的特定列并检查是否有任何新添加是重复的。我想出了以下方法,但它不起作用。

function hasDuplicates() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Customer and form Details");
  var array = sheet.getRange('B2:B' + lastRow).getValues();
  var valuesSoFar = [];

    for (var i = 0; i < array.length; ++i) {
        var value = array[i];
        if (value in valuesSoFar) {
          SpreadsheetApp.getUi().alert('Hello, world!');
        }
      else{
        valuesSoFar.push(value);
      }
    }
}

据我所知,上面的代码创建了一个名为array 的数组,并用我感兴趣的特定范围填充它。然后我创建一个名为valuesSoFar 的新的空数组。然后代码循环遍历该列并依次检查该项目之前是否已经看过,如果是,它会给您一个警报。如果没有,它会将其添加到新项目列表中并继续。

【问题讨论】:

    标签: javascript arrays google-apps-script google-sheets


    【解决方案1】:

    看起来有点像你在使用在线文档代码。

    但缺少以下分配:

    var lastRow = sheet.getLastRow();
    

    或者只是将lastRow 替换为sheet.getLastRow()

    更新: 如果您在 B 列中确实有任何重复项,我认为以下解决方案应该有效:

    function hasDuplicates() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheetByName("Customer and form Details");
      var array = sheet.getRange('B2:B' + sheet.getLastRow()).getValues();
      var valuesSoFar = [];
    
      for (var i = 0; i < array.length; ++i) {
        var value = array[i][0];
        if (value in valuesSoFar) {
          SpreadsheetApp.getUi().alert('Hello, world!');
        } else {
          valuesSoFar.push(value);
        }
      }
    }
    

    如果还不行,对不起。

    只要你不能提供任何关于你遇到什么样的错误的信息,我就不会再调查了。

    【讨论】:

    • 我使用了在线文档代码的各个方面,但随后根据我的要求对其进行了调整。我已添加作业,但仍无法正常工作
    • 那么你做了一些调试吗?除了“不工作”之外,您还可以提供任何其他信息吗?你确定吗,例如sheet.getRange 返回一个一维数组?
    • 您如何查看日志?它是在谷歌表格还是脚本中?
    • 在浏览器中按 F12 并在您的 sn-p 中写入一些 console.log 语句怎么样
    • 在循环中添加console.log(array[i])。我敢打赌它会打印出另一个数组。取决于它返回的正确分配可能如下所示:value = array[i][0]
    猜你喜欢
    • 2021-09-13
    • 2015-09-17
    • 2012-06-07
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 2012-01-04
    相关资源
    最近更新 更多