2015-03-03 65 views
1

我想建立一個菜單功能編輯在谷歌表中選擇的值:谷歌Apps腳本:得到的範圍內,編輯值和設定值範圍

function fDoSomethingWithRange(){ 
    //var theSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 

    var theSheet = SpreadsheetApp.getActiveSheet(); 
    var theRange = theSheet.getActiveRange(); 
    var theValues = theRange.getValues(); 
    var theArray = new Array(theRange.getHeight()); 
    //theSpreadsheet.toast(theValues); 

    for (var i = 0;i<theRange.getHeight();i++){ 
    theArray[i]=new Array(theRange.getWidth()); 
    }; 

    for (var h=0;h<theRange.getHeight();h++){ 
    for (var w=0;w<theRange.getWidth();w++){ 

     var i = h + (w * theRange.getHeight()); 
     theArray[h][w] = parseInt(theValues[i]) * 2; // just an example return double values 
    }; 
    }; 
    theRange.setValues(theArray); 
}; 

我停頓在返回數組;第二列是空的,我只是不明白爲什麼。任何人?

感謝, 阿維德

回答

2

好了,找到了自己......最後:-)

的GetValues()得到一個二維數組。我被顯示一行值的吐司消息所愚弄,提示getValues()獲取一維數組。

function fDoSomethingWithRange(){ 
    //var theSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 

    var theSheet = SpreadsheetApp.getActiveSheet(); 
    var theRange = theSheet.getActiveRange(); 
    var theValues = theRange.getValues(); 
    var theArray = new Array(theRange.getHeight()); 
    //theSpreadsheet.toast(theValues); 

    for (var i = 0;i<theRange.getHeight();i++){ 
    theArray[i]=new Array(theRange.getWidth()); 
    }; 

    for (var h=0;h<theRange.getHeight();h++){ 
    for (var w=0;w<theRange.getWidth();w++){ 

     var i = h + (w * theRange.getHeight()); 
     theArray[h][w] = parseInt(theValues[h][w]) * 2; // just an example return double values 
    }; 
    }; 
    theRange.setValues(theArray); 
};