我正在尝试创建一个google脚本,该脚本将扫描一个google工作表的特定列,并检查是否有任何新增内容是重复的。我想出了以下内容,但它无效。
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
的新的空数组。然后代码循环遍历列并依次检查该项是否已经被查看过,如果是,它会给您一个警报。如果没有,它会将其添加到新项目列表中并继续运行。
答案 0 :(得分:0)
看起来有点像使用在线文档代码。
但缺少以下作业:
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);
}
}
}
如果它还没有工作,我很抱歉。
只要您无法提供有关您遇到的错误类型的任何信息,我就不再关注此事了。