Arrays 将数组数据的setValues()拆分为两组列(例如B-H和AV-AX)-谷歌电子表格
我有一个for循环,它构建一个大小为n行x 10列的数据数组Arrays 将数组数据的setValues()拆分为两组列(例如B-H和AV-AX)-谷歌电子表格,arrays,google-apps-script,google-sheets,Arrays,Google Apps Script,Google Sheets,我有一个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 =
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]);
}
}
但是,目标表上的列现在已经移动,我需要在B-H中粘贴数组的前7列,在AV-AX中粘贴最后3列
或者,我可以创建两个数组,一个包含前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);
}
}
函数myFunction(){
var dupRows=crossoverdeplicates.getDataRange();
var dupNumRows=dupRows.getNumRows();
var dupValues=dupRows.getValues();
var B_H_数组=[];
var AV_AX_数组=[];
var AV_AX_TempArray,B_X_TempArray,c,dupRow,thisRowsData;//定义变量
//不赋值
对于(c=1;c
我的答案有用吗?是的。非常感谢。我对你的代码做了一些小的修改,效果非常好。出于某种原因,我对编辑的评论没有显示出来,我显然没有足够高的声誉来投票支持你的答案,但我真的很感激!
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);
}
}