TypeError:无法在Sheet对象中找到getCell函数

问题描述 投票:-1回答:2

我试图从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函数

谢谢你的帮助!

arrays google-apps-script google-sheets
2个回答
1
投票

错误:

  • getCell()Range的方法,而不是Sheet
  • Google表格从rowIndex = 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();
}

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 <= 6; ++ i),其中一个:(var i = 2; i <= n + 1; ++ i),所以它可以工作完全使用任何变量n来获取命令“var numCrypto = datAgg.getRange(1,2).getValue();”

© www.soinside.com 2019 - 2024. All rights reserved.