以下是我的代码。前两个值位于我的数组的第一列,我正确地提取值。值3在第8列中,但它只是拉出与值1相同的值。此外,它之后的地图和功能......我老实说不知道为什么,但没有它,我不返回值,而是对象,这就是它仍然存在的原因。在我使用.getRange(“A1”)。getValue(作为示例)调用每个值之前,我是新手使用数组,但我使用它太多次使脚本变慢并且经常超时。 (我在调用比这个例子更多的值。
var otherSheet= SpreadsheetApp.open(file).getSheetByName("Project Overview");
var data = otherSheet.getRange("B3:I20").getValues().map(function(row){ return row[0];});
var value1 = data[1,1].valueOf();
var value2 = data[1,2].valueOf();
var value3 = data[8,1].valueOf();
sheet.setFrozenRows(1);
sheet.appendRow([value1, value2, value3]).sort(2);}
答案 0 :(得分:0)
你不会使用地图。获取值返回一个二维数组,该数组作为数据[r] [c]进行寻址。因此,索引为零,因此R或C为零的第一项。以下指数可能需要相应调整。在B3以下提取的范围内,将是最左上角的项目,并将作为数据[0] [0]进行寻址。 B4数据[1] [0]和C5将是数据[2] [1]
var otherSheet= SpreadsheetApp.open(file).getSheetByName("Project Overview");
var data = otherSheet.getRange("B3:I20").getValues();
var value1 = data[1][1]; // C4
var value2 = data[1][2]; // D4
var value3 = data[8][1]; // C11
sheet.setFrozenRows(1);
sheet.appendRow([value1, value2, value3]);
答案 1 :(得分:0)
我认为如果值3在第8列,你应该从var value3 = data[8,1].valueOf();
获得该值
同样对于sheet.appendRow(),您可以简单地将这三个值添加到单维数组中,并将该数组传递给方法,如下所示:
var value[0] = data[1][1].valueOf();
var value[1] = data[1][2].valueOf();
var value[2] = data[1][8].valueOf();
sheet.setFrozenRows(1);
sheet.appendRow(value).sort(2);
希望有所帮助!如果这不是您要找的,请更新您的问题。