2017-04-03 33 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