2012-03-02 122 views
0

我想將一些列複製到另一個工作表。當我調用copyValuesToRange方法兩次時,一個正在工作,但另一個不是。調用copyValuesToRange方法兩次

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,第二個是否工作? – Guy 2012-03-03 14:58:08

+0

不,它不起作用 – mutkan 2012-03-03 19:17:51

+1

sWidth2應該是+8,因爲您想將第二個範圍移到右側。也許你還想用sWidth + 1替換8以使它更健壯。 – Guy 2012-03-04 06:25:27

回答

1

通過sWidth2從起點移位所述第二範圍的寬度(第一範圍+ 1的終點),因爲它應該是目標範圍右邊框的列號:

source_range2.copyValuesToRange(target_sheet , sWidth1+1, sWidth1+1+sWidth2, last_row + 1, last_row + sHeight2);