2015-03-03 67 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); 
};