例外:数据中的列数与区域中的列数不匹配



你好,我正在为我试图做的事情的语法和功能而苦苦挣扎。 我循环一个值列表并运行一个花费超过 5 分钟的数据库操作,因此我跟踪列表中的哪些值插入了 B 列。 但是脚本第一次运行时没有 B 列,这似乎在写回数组时混淆了最后一条语句。

所以我认为问题是创建一个一维数组,然后添加一个列,然后尝试将其写回两列数组。

我拿出数据库代码只显示问题代码。

const LISTRANGE=LISTSHEET.getDataRange(); //get all the values just column A is populated
var LISTARRAY=LISTRANGE.getValues(); // push them into an array
for (var i = 0; i < NEXTRUN ; i++) { // loop the array
LISTARRAY[NEXTRUN][1] = "INSERTED"
}
LISTSHEET.getRange(1,1,LISTARRAY.length,2).setValues(LISTARRAY);

此代码以结果结尾

例外:数据中的列数与区域中的列数不匹配。数据有 1,但范围有 2。(第 76 行,文件"宏"(

我想也许我只需要选择 1 列,因为数组从 1 维开始,但随后它给出了此错误

LISTSHEET.getRange(1,1,LISTARRAY.length,1).setValues(LISTARRAY);

例外:数据中的列数与区域中的列数不匹配。数据有 2,但范围有 1。(第 76 行,文件"宏"(

你能帮我制定一个修改此代码以避免错误的策略吗? 我不介意采用不同的方法,我只是试图将处理保留在缓存中,因此我不会在每次循环迭代时写入工作表。

试试这个:

const LISTRANGE=LISTSHEET.getRange(1,1,LISTSHEET.getLastRow(),2);
var LISTARRAY=LISTRANGE.getValues(); 
for (var i=0;i<LISTARRAY.length;i++) {
LISTARRAY[i][1] = "INSERTED"
}
LISTSHEET.getRange(1,1,LISTARRAY.length,LISTARRAY[0].length).setValues(LISTARRAY);

最新更新