2017-12-03 278 views
-1

我試圖從Google表格中獲取一些數據,以便插入兩個數組並使用for循環,但我認爲我使用了錯誤的方法。TypeError:無法在Sheet對象中查找getCell函數

這是代碼:

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: Impossible to find getCell function in the Sheet object

感謝您的幫助!

+0

你的數據是怎樣的,你試圖得到哪個單元格? – aaron

+0

函數必須從一張紙上讀取一組值並將其插入另一張(同一個Google文檔)。數組必須是動態的,因爲數據可以變化,但它們一起變化(即,如果第一組值是14而另一組值是14)。工作表是關於加密貨幣的。我希望有一張表格可以在預定的時間每天保存它們的價值(它會連續變化)。因此,函數必須讀取加密貨幣名稱(第一個數組)和加密貨幣值(第二個數組),並將其放入第二個表中,每天顯示更新後的值。 –

+0

這回答你正在做什麼*試圖做*,但沒有回答我問的問題。 – aaron

回答

1

錯誤:

  • getCell()Range的方法,而不是Sheet
  • 谷歌張紙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

嘗試在「for」條件後刪除分號';'。 – aaron

+0

已經做到了,但它不起作用。現在不要擔心。你認爲這些代碼可以將數據放在谷歌表格上嗎? –

+0

我不明白爲什麼不。 – aaron

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)with this one:(var i = 2; i < = n + 1; ++ i),所以它可以使用命令「var numCrypto = datAgg.getRange(1,2).getValue();」

+0

將您的答案標記爲已接受。 – aaron

+0

我該怎麼做? –

+0

單擊答案左側的複選標記。 – aaron

相關問題