2012-03-02 13 views
0

いくつかの列を別のシートにコピーしたい。私がcopyValuesToRangeメソッドを2回呼び出すと、1つは動作していますが、もう1つは動作していません。copyValuesToRangeメソッドを2回呼び出す

function myFunction() { 
    var s = SpreadsheetApp.getActiveSpreadsheet(); 
    var target = SpreadsheetApp.openById("f3y53y54y45h45jh454"); 

    var target_sheet = target.getSheetByName("Sheet2"); 
    var sheet = s.getSheetByName("Sheet1"); 

    var sheet_last_row = sheet.getLastRow() + 1; 

    var source_range = sheet.getRange("B1:H"+sheet_last_row); 
    var source_range2 = sheet.getRange("K1:P"+sheet_last_row); 

    var sWidth=source_range.getWidth() + 1; 
    var sHeight=source_range.getHeight() + 1; 

    var sWidth2=source_range2.getWidth() + 1; 
    var sHeight2=source_range2.getHeight() + 1; 

var last_row=target_sheet.getLastRow(); 

source_range.copyValuesToRange(target_sheet , 1, sWidth, last_row + 1, last_row + sHeight); 
source_range2.copyValuesToRange(target_sheet , 8, sWidth2, last_row + 1, last_row + sHeight2); 

} 

この問題を解決するにはどうすればよいですか、別のシートをセルにコピーする方法がありますか?

+0

を最初のcopyValuesToRangeをコメントアウトすると、2番目のcopyValuesToRangeが機能しますか? – Guy

+0

いいえ、動作しません – mutkan

+1

2番目の範囲を右にシフトしたいので、幅2は+8にする必要があります。多分、8をsWidth + 1に置き換えて、もっと頑強にしたいかもしれません。 – Guy

答えて

1

が目標範囲右端の列数でなければならないように、sWidth2により開始点から(第1の範囲+ 1の終了地点)への第2の範囲の幅をシフト:

source_range2.copyValuesToRange(target_sheet , sWidth1+1, sWidth1+1+sWidth2, last_row + 1, last_row + sHeight2); 
関連する問題