2017-04-03 34 views
1

我正在嘗試創建一個菜單列表,它將添加X個行數,併合並添加的新行的行數H> M(逐行 - 不是整個數據塊)。我無法確定如何選擇活動行+1或活動行+2等,然後沿適當數量的單元格移動。Google表格腳本 - 選擇下一行+合併範圍?

下面是我迄今爲止用於UI和添加行的腳本,我正在試圖合併H> M插入的新行的節點。

function onOpen() { 
    var ui = SpreadsheetApp.getUi(); 
    // Or DocumentApp or FormApp. 
    ui.createMenu('Planning Functions') 
     .addItem('Add 1 Row', 'add1row') 
    .addItem('Add 2 Rows', 'add2row') 
     .addToUi(); 
} 

function add1row() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var ar = ss.getActiveRange().getRow(); 
    ss.insertRowsAfter(ar, 1); 
} 
function add2row() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var ar = ss.getActiveRange().getRow(); 
    ss.insertRowsAfter(ar, 2); 
} 

感謝您的幫助!

回答

0

試試這個:

function onOpen() { 
 
    var ui = SpreadsheetApp.getUi(); 
 
    // Or DocumentApp or FormApp. 
 
    ui.createMenu('Planning Functions') 
 
     .addItem('Add 1 Row', 'add1row') 
 
    .addItem('Add 2 Rows', 'add2row') 
 
     .addToUi(); 
 
} 
 

 
function add1row() { 
 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
 
    var sheet = ss.getActiveSheet(); 
 
    var ar = ss.getActiveRange().getRow(); 
 
    var mergeRange = sheet.getRange(ar+1,8,1,6); 
 
    ss.insertRowsAfter(ar, 1); 
 
    mergeRange.mergeAcross(); 
 
} 
 
function add2row() { 
 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
 
    var sheet = ss.getActiveSheet(); 
 
    var ar = ss.getActiveRange().getRow(); 
 
    var mergeRange = sheet.getRange(ar+1,8,2,6); 
 
    ss.insertRowsAfter(ar, 2); 
 
    mergeRange.mergeAcross(); 
 
}

+1

這是偉大的,我錯誤地試圖指定每個範圍併合並他們,但我看到你mergeacross的解決方案要好得多。非常感謝! – Seawad