1

下面是我的代碼,並在代碼的最後一行顯示「無法轉換錯誤」。 要澄清該行:sheet.getRange將引發錯誤。將數組分配給一個範圍時無法轉換錯誤

這就是所有錯誤說的;沒有更多,只是「無法轉換」。此外,這是完整的代碼,所以沒有別的。

function days(){ 
     var table = new Array(7); 

     for (var i = 0; i < 7 ; i ++){ 
     table[i] = i+2; 
     } 

     var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Want"); 
      sheet.getRange("B2:B9").setValues(table); 

     } 
+0

我更新了一點,現在好點了嗎?讓我知道是否有遺漏。 – Rommel 2012-07-12 20:06:03

+0

你碰巧知道哪一行會引發錯誤?你正在採取哪些步驟來創建/重現錯誤?你採取了哪些措施來消除錯誤?到目前爲止你有什麼或沒有爲你工作? [問] – Gaffi 2012-07-12 20:10:11

回答

3

我對Google Apps腳本沒有任何瞭解,但我在Google上找到了this

看起來你的表格需要是一個2維數組。

也許這可以幫助嗎?

(代碼是從上面的鏈接)

var myTable = [[1, 2, 3, 4],[5, 6, 7, 8]]; 
var sheet = SpreadsheetApp.getActiveSheet(); 
sheet.getRange(1,1,2,4).setValues(myTable); 
3

SetValues()需要2個維度陣列作爲參數,TABLE是一個1名維數組...這不能工作,因爲它是...可以很容易地改變,雖然,使表7個元件的2D陣列。

這樣的:table[i] = [i+2];

順便說一句,範圍(「B2:B9」)是高8個格,你只給7個價值觀......會有問題出現!

1

我想通了這個問題這個問題,所以我會回答這個問題,讓其他人可能會受益。這裏的問題是,Range對象的.setValues方法必須被賦予一個二維數組[] []。所以我在另一個內部創建了一個0維數組,這樣我現在有了一個二維數組。

var array = new Array(7); 

for (var i = 0; i < 7; i++) { 
    array[i] = new Array(0); 
    } 
+0

這看起來比我的例子還要好! – Gaffi 2012-07-12 20:21:38

+0

如果你想要'其他可能的好處',請不要保留原來的代碼,也不要忘記將範圍大小從8更改爲7 ;-) – 2012-07-12 20:39:42

+0

你的意思是範圍大小。也只是爲了澄清,我應該改變我原來的代碼中的代碼,以便它是正確的? – Rommel 2012-07-12 22:05:38

相關問題