因此,我从电子表格中获取数据,将相关部分放入数组并将其写回新的电子表格。数据来自谷歌表格,并不是每个人都有每个问题的输入,所以我只采取非空的问题。这导致我的数组的长度变化
所以我把它归结为最最开始的步骤,我被困在你插入工作表的部分,它在1的迭代上工作正常,但是当我在循环上执行它时会出现错误。
for (j=2; j <= 3 ; j++)// I have 23 iterations, but I stopped at 2 for now
{
var cellLocation = new String ("B" + j + ":AC" + j);
Logger.log("J is " + j + "Cell location " + cellLocation);
var workingRange = buySheet.getRange(cellLocation);
var customer = workingRange.getValues(); //this produces a range of the row
Logger.log("Range is " + workingRange.getA1Notation() + " data is " + customer[0][0]);
//At first I thought it was the range- so I broke everything out into the tiniest step
var nameCustomer = new String(customer[0][0]);
Logger.log("nameCustomer is " + nameCustomer);
//this correctly prints out the names as strings- through 23 iterations
var create = buySheet.insertSheet(nameCustomer);
//this is a sheet object with the customers name- fails after the first iteration, and creates sheets with blank names -
}
这是我正在使用的参考:https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#insertSheet(String)
我已经在此之后评论了所有内容以解决这个问题。我试过在循环外实例化字符串。我可以发布日志,我正在使用我拥有的真实数据,所以我不得不模糊人们的名字。
它适用于第一轮,如果我手动输入一个字符串,它就可以工作。
答案 0 :(得分:0)
我明白了!当我创建新工作表时,它将活动工作表移动到新工作表。因此,在循环结束时,我必须将活动工作表重置为第一个工作表,其中包含我想要的数据。
回想起来似乎很明显。