2017-09-13 29 views
0

我有一列在每一行上都包含一個像這樣的文本(文本不同) - ABC1 London - ACompany: Ground Floor, Main Tower, 127 Bridge Street, London AB1 1JZ將數組轉換爲對象並將值粘貼到不同的列中

我從該文本中提取城市名稱並將其存儲到新數組中的腳本。

當我嘗試將這些值寫入新列時,我收到Cannot convert Array to Object[][]. (line 18, file "Code")

我試圖再次循環該數組,但它返回101個數組(我有101行),所以當我將城市[0] .length設置爲寬度時,它將其粘貼到101列上。

我需要的只是從文本中獲取城市名稱並將其粘貼到同一張紙上不同的列 - 例如。該文本在B12欄中,我想將城市名稱粘貼到R12中 - 希望它有道理。

請參閱下面的代碼,我有

function getCity() { 
    var ss = SpreadsheetApp.openById('ID'); 
    var sh = ss.getSheetByName('Response Data'); 
    var range = sh.getDataRange(); 
    var values = range.getValues(); 
    var cities = []; 
    var newCity = [] 
    for (var i=1;i<values.length;i++) 
    { 

    var cellText = values[i][11]; 
    if(typeof cellText === 'number') {continue;}; 
    cities.push(cellText.substring(5, (cellText + " -").indexOf("-") - 1)); 
    } 

    Logger.log(cities); 

    sh.getRange(2, 18, cities.length, 1).setValues(cities); 


} 

謝謝!

+0

你得到任何錯誤? –

+0

無法將數組轉換爲對象[] []。 (行18,文件「代碼」) –

回答

1

試試這個代碼,看看,如果你得到同樣的錯誤,

function getCity() { 
    var ss = SpreadsheetApp.openById('ID'); 
    var sh = ss.getSheetByName('Response Data'); 
    var range = sh.getDataRange(); 
    var values = range.getValues(); 
    var cities = []; 
    var newCity = [] 
    for (var i=1;i<values.length;i++) 
    { 
    var cellText = values[i][11]; 
    if(typeof cellText === 'number') {continue;}; 
    cities.push([cellText.substring(5, (cellText + " -").indexOf("-") - 1)]); 
    } 
    Logger.log(cities); 
    sh.getRange(2,18,cities.length,1).setValues(cities); 
} 
+0

我得到'不正確的範圍高度,是1但應該是101(第15行,文件「代碼」)' –

+0

與示例數據共享示例電子表格,存在錯誤'.getRange(2 ,18,cities.length,1)'用這部分 –

+0

https://docs.google.com/spreadsheets/d/1FoHkogaCMpozdRsVdErMNbQTaTgZaG5DORO_4kGHKl8/edit?usp=sharing –