如何在不重复的情况下将新项目复制到另一个工作表



我有一个有两个选项卡的电子表格:

DailyInv:从外部程序导入为xml,并通过一个简单的脚本运行以删除赘肉。

ProductMasterList:是一个包含所有项目的库。

我想创建一个脚本,检查'DailyInv'中列a (Product#)中没有在'ProductMasterList'上的任何新项目,然后复制列a &B为新项目到'ProductMasterList'的下一个可用行。

我在'ProductMasterList'上使用过滤器视图来对项目进行排序。过滤器似乎破坏了下面的脚本,它将开始在表单的最底部添加重复项。

我用的很多数字也是以00开头的。有没有办法确保它不会漏掉0 ?

https://docs.google.com/spreadsheets/d/1DH7FuhtlxJPpRUbBr1HETm0x2lMqXqwaBgVzBJ9hzvk/edit gid = 0

试试这个

function checkDailyInv() {
const ss = SpreadsheetApp.getActive()
const sh = ss.getSheetByName("DailyInv");
const list = sh.getRange(2, 1, sh.getLastRow() - 2, 2).getValues();//assume one header row
const msh = ss.getSheetByName("ProductMasterList");
const vs = msh.getRange(2, 1, msh.getLastRow() - 1).getValues().flat();//assume one header row
const arr = [];
list.forEach(r => {
if (!~vs.indexOf(r[0])) {
arr.push(r);
}
});
if (arr.length > 0) {
msh.getRange(msh.getLastRow() + 1, 1, arr.length, arr[0].length).setValues(arr);
}
}

最新更新