我有一个 for 循环,它构建了一个大小为 n 行 x 10 列的数据数组。
var dupRows = crossoverDuplicates.getDataRange();
var dupNumRows = dupRows.getNumRows();
var dupValues = dupRows.getValues();
var retreiveNotFound = [];
for (var c = 1; c < dupNumRows; c++) {
var dupRow = dupValues[c];
if (dupRow[10] == "") {
retreiveNotFound.push(dupValues[c]);
}
}
然后我使用 setValues(( 将数组粘贴到另一个工作表的底部。
if (retreiveNotFound && retreiveNotFound.length) {
crossover.getRange(lastRowCrossoverData + 1, 2,
retreiveNotFound.length,10 ).setValues(retreiveNotFound);
}
但是,目标工作表上的列现在已经移动,我需要将数组的前 7 列粘贴到 B - H 中,将后 3 列粘贴到 AV - AX 中。
或者,我可以创建两个数组,一个包含前 7 列,另一个包含后 3 列,然后分别粘贴。
不幸的是,我也不知道该怎么做。
我猜这有一个相对简单的解决方案,但我只是没有搜索正确的关键字。 提前感谢您的帮助!
将 Google 电子表格列移到两个单独的位置。 将Google电子表格列拆分为不同的列或两个不同的列。 此代码从一个位置获取数据,然后创建两个单独的数组,并将数据写入两个不连续的范围。
function myFunction() {
var dupRows = crossoverDuplicates.getDataRange();
var dupNumRows = dupRows.getNumRows();
var dupValues = dupRows.getValues();
var B_H_Array = [];
var AV_AX_Array = [];
var AV_AX_TempArray, B_X_TempArray, c, dupRow, thisRowsData;//Define variables
//without assigning a value
for (c = 1; c < dupNumRows; c++) {
dupRow = dupValues[c];
if (dupRow[10] == "") {
thisRowsData = dupValues[c];
B_X_TempArray = thisRowsData.slice(0,7);//Slice out the first elements
AV_AX_TempArray = thisRowsData.slice(7,10);//Slice out last elements
B_H_Array.push(B_X_TempArray);
AV_AX_Array.push(AV_AX_TempArray);
}
}
if (B_H_Array.length) {
crossover.getRange(lastRowCrossoverData + 1, 2,B_H_Array.length, B_H_Array[0].length )
.setValues(B_H_Array);
}
if (AV_AX_Array.length) {
crossover
.getRange(lastRowCrossoverData + 1, 48,AV_AX_Array.length, AV_AX_Array[0].length )
.setValues(AV_AX_Array);
}
}