我对 JavaScript 比较陌生,所以请多多包涵。
我在谷歌电子表格中有一张座位表,它通过命名范围在两个相邻单元格中标记了坐在那儿的人的桌号和姓名。我希望我的代码遍历所有命名范围,并获取桌号和人员的值并将其吐到两列中的新工作表中——一列中的桌号和另一列中的用户名。我遇到的一个主要问题是一些桌面编号/用户范围是垂直的(例如:desk_1 = Sheet1!F6:F7,其中 F6 是桌面编号,F7 是用户)并且一些范围是水平的(例如:desk_2 = Sheet1! G2:H2 其中 G2 是用户,H2 是桌号)所以我不知道如何从多个方向搜索。这是我的一些代码,目前无法正常工作。任何建议将不胜感激!
enter code here
function findSeats() {
var sheet = SpreadsheetApp.getActiveSheet();
var wbk = SpreadsheetApp.getActiveSpreadsheet();
var rng_convention = "desk_";
var desk_name = rng_convention;
var users = new Array();
for ( var i = 0; i <= 1000; i++) {
desk_name = rng_convention;
desk_name = desk_name + i;
var rng = wbk.getRangeByName(desk_name);
if( !rng ) {
continue; }
else {
var vals = rng.getValues();
var k = 0;
if(vals.length == 1) {
//look left right horizontally for user
if(vals[0][0] == i) {
// create a user for this named range.
var user = new Object();
user.name = vals[0][1];
user.position = vals[0][0];
users[k] = user;
k++;
}
else {
//look right left horizontally for user
if (vals [0][1] == i){
// create the user for this named range.
var user = new Object();
user.name = vals[0][0];
user.position = vals[0][1];
users[k] = user;
k++;
}
}
}
/* else {
/* something is wrong, I need to look up-down, and then down up for users */
}
}
return users;
};