我正在尝试从Google表格中获取一些数据以插入两个带有for
循环的数组,但我认为我使用了错误的方法。
这是代码:
function regValori() {
var datAgg = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("datiaggiornati");
var f5 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Foglio5");
var CValue = new Array();
var CName = new Array();
CValue.lenght = datAgg.getRange("B1").getValue();
CName.lenght = CValue.lenght;
for (var i = 0; i <= CValue.lenght; i++)
{
CValue[i] = datAgg.getCell(i, 16).getValue();
CName[i] = datAgg.getCell(i+2, 1).getValue();
}
var riga = f5.getRange("B2").getValue();
for (x = 3; x <= numCrypto; x++);
for (i=0;i<numCrypto;i++);
{
f5.getRange(riga, x).setValue(valCrypto[r+i]);
f5.getRange(2,numCrypto).setValue(nomiCrypto[r+i]);
}
}
错误:
TypeError:无法在Sheet对象中找到getCell函数
感谢您的帮助!
答案 0 :(得分:1)
错误:
如果您不需要偏移(即从某个单元格开始),那么您可以使用getRange
:
for (var i = 0; i <= CValue.lenght; i++)
{
var r = i + 1; // rowIndex
CValue[i] = datAgg.getRange(r, 16).getValue();
CName[i] = datAgg.getRange(r+2, 1).getValue();
}
答案 1 :(得分:0)
这是解决方案:
function regValori() {
var datAgg = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("datiaggiornati");
var f5 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Foglio5");
var riga = f5.getRange(2, 2).getValue();
for (var i = 2; i <= 6; ++i) {
f5.getRange(riga, i + 1).setValue(datAgg.getRange("P" + i).getValue());
f5.getRange(2, i + 1).setValue(datAgg.getRange("A" + i).getValue());
}
}
我在这里针对同样的问题发布了另一个问题,我得到了一个完美的答案how to use for loop to drastically reduce code lenght。 我改变的唯一部分就是这一部分:(var i = 2; i&lt; = 6; ++ i)这一部分:( var i = 2; i&lt; = n + 1; ++ i),所以它可以与任何变量n完美配合以获得命令&#34; var numCrypto = datAgg.getRange(1,2).getValue();&#34;