// Adds a menu on user opening the spreadsheet function onOpen() { options = [ {name:"Move Rows", functionName:"moveRows"}, ]; SpreadsheetApp.getActiveSpreadsheet().addMenu("~ Tools ~ ", options); } function moveRows() { var sheet = SpreadsheetApp.getActiveSpreadsheet(); var tab = sheet.getActiveSheet(); var range = tab.getActiveRange(); var startRow = range.getRow(); var endRow = range.getLastRow(); var numRows = endRow - startRow + 1; var destinationRow = parseInt(Browser.inputBox("Enter the destination row:")) + 1; var data = range.getValues(); // Insert the data at the destination row, displacing the existing rows tab.insertRows(destinationRow, numRows); tab.getRange(destinationRow, 1, numRows, range.getLastColumn()).setValues(data); if (startRow > destinationRow) { // e.g. youre moving it up from Row 20 to Row 10 startRow += numRows // account for the fact that new rows have been added above } // Delete the original rows tab.deleteRows(startRow, numRows); }