我有两列数据。其中一列(在不同的工作表上)是已批准的客户(已批准的客户)列表。另一个是当前工作表中的列(currentClients)。我的目标是查看另一个工作表中的列和此工作表中的列,并显示当前工作表中的差异。
例如,如果[1,2,3,4,5,6]
是当前列,而另一个工作表上的列是[1,3,5,6]
,我希望我的结果为[2,4]
,因为2和4是值它存在于当前列中,但不存在于另一个工作表的列中。
当我运行下面的代码时,我没有收到任何错误,但是当我记录unknownClients时,我得到了this。怎么了?
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
var ui = SpreadsheetApp.getUi();
var cell;
var range;
switchSheets('Results');
var currentClients = sheet.getRange('B2:' + sheet.getLastRow()); //gets the clients that are currently connected.
switchSheets('Approved clients');
var approvedClients = sheet.getRange('A2:' + sheet.getLastRow()); //gets the clients that are approved to connect.
switchSheets('Results');
var unknownClients = new Array();
for(i in currentClients){
var row = currentClients[i];
var duplicate = false;
for(j in unknownClients){
if(row == unknownClients[j]){
duplicate = true;
}
}
if(!duplicate){
unknownClients.push(row);
}
}
Logger.log(unknownClients);
}
答案 0 :(得分:0)
这是我的错误:
- 我没有得到细胞的价值。我得到了一个工作表对象。它记录了工作表对象的所有方法
- 我试图将connectedClients列表与unknownClients列表进行比较,这是一个空数组。我将对unknownClients的两个引用更改为approvedClients
我所做的更改都是大写的。
我非常感谢这个社区的帮助。我尽力回答,我感谢你这样做。
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
var ui = SpreadsheetApp.getUi();
var cell;
var range;
switchSheets('Results');
var currentClients = sheet.getRange('B2:' + sheet.getLastRow()).getValues(); //ADDED THE GET VALUES
switchSheets('Approved clients');
var approvedClients = sheet.getRange('A2:' + sheet.getLastRow()).getValues(); //ADDED THE GET VALUES
switchSheets('Results');
var unknownClients = new Array();
for(i in currentClients){
var row = currentClients[i];
var duplicate = false;
for(j in approvedClients){ //CHANGED UNKNOWN TO APPROVED
if(row == approvedClients[j]){ //CHANGED UNKNOWN TO APPROVED
duplicate = true;
}
}
if(!duplicate){
unknownClients.push(row);
}
}
Logger.log(unknownClients);
}