【发布时间】:2018-07-06 10:48:57
【问题描述】:
我有两列,其中包含数据。其中一列(在不同的工作表上)是已批准客户的列表 (approvedClients)。另一个是当前工作表中的一列 (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);
}
【问题讨论】:
-
这是什么函数
switchSheets(),可以分享代码吗? -
@JackBrown 这是一个改变活动工作表的自定义函数。
-
更改活动工作表不会追溯更改工作表变量。它仍然是指分配给它的第一张工作表。
-
另外,您能否再次检查您的粘贴箱链接。好像错了!
-
尝试将
var unknownClients = new Array();更改为var unknownClients = [];。您可能还想查看this SO question,因为它基本上讨论的是同一件事。
标签: javascript google-apps-script google-sheets duplicates