Google feuille de calcul: Insérer des Lignes et en copier le contenu caché

J'ai une feuille de calcul Google conçu pour calculer un tableau de bord équilibré pour les entreprises, la mesure de l'évolution des effectifs. La feuille de calcul est constituée de plusieurs cellules et un certain nombre de "caché" des colonnes contenant des formules précises qui calulates la saisie des données et produit un score.

J'ai besoin d'un script qui sera à n'importe quelle ligne dans la feuille de calcul (position actuelle du curseur):
un Script pour être appelée à partir du menu principal (Insérer des Lignes)
b) Insérer un nombre défini de lignes en dessous de la position actuelle du curseur (pop-up de l'INTERFACE utilisateur de la boîte de demander le nombre de lignes à insérer)
c) Copie les données de la ligne ci-dessus, y compris toutes les données/les formules contenues dans les colonnes cachées
d) Re-masquer le protégé de colonnes, puis la main à l'utilisateur.

Les colonnes cachées contenir IP que je ne veux pas que les utilisateurs de voir, d'où le caché/protégé aspect.

Peut aider quelqu'un?

Mon script pour l'instant...

function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [{name: "Insert Rows", functionName: "doGet"}];
ss.addMenu("User Functions", menuEntries);
}
function doGet(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var app =UiApp.createApplication().setTitle('Insert Rows').setHeight(75).setWidth(225);
//Create a grid with 1 text box and corresponding label. 
//Test entered into the text box is passed in to numRows.
//The setName extension will make the widget available by the given name to the server handlers later.
var grid = app.createGrid(1, 2);
grid.setWidget(0, 0, app.createLabel('Number of Rows to Insert:'));
grid.setWidget(0, 1, app.createTextBox().setName('numRows').setWidth(50));
//Create a Vertical Panel and add the Grid to the Panel.
var panel = app.createVerticalPanel();
panel.add(grid);
//Create a button and Click Handler.
//Pass in the Grid Object as a callback element and the handler as a click handler.
//Identify the function insertRows as the server click handler.
var button = app.createButton('Submit');
var handler = app.createServerHandler('insertRows');
handler.addCallbackElement(grid);
button.addClickHandler(handler);
//Add the button to the Panel, add Panel to the App, launch the App
panel.add(button);
app.add(panel);
ss.show(app);
}
function insertRows(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cursPos = sheet.getActiveCell().getRow();
var valueRows = e.parameter.numRows;
sheet.insertRowsAfter(cursPos, valueRows);
var app = UiApp.getActiveApplication();
app.close();
return app;
}

J'ai maintenant besoin de copier le contenu de la ligne au-dessus de l'emplacement de la cellule active (le haut de la lh cellule nouvellement créé lignes) dans les lignes créées.

InformationsquelleAutor Mike Eburne | 2013-04-22