6

È possibile aggiungere argomenti a una funzione che verrà aggiunta al menu Centro script di un documento di Google Spreadsheet? Questo è il normale metodo onpen.Aggiunta di argomenti a una funzione nell'oggetto onOpen entries

function onOpen() { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
    var entries = [{ 
    name : "Summary", 
    functionName : "myOnOpen" 
    } 
]; 
    sheet.addMenu("Script Center Menu", entries); 
}; 

Mi chiedevo se c'è qualcosa di simile al seguente.

function onOpen() { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
    var entries = [{ 
    name : "Summary", 
    functionName : "myOnOpen", 
    arguments : [value: "Some value"] 
    } 
    ]; 
    sheet.addMenu("Script Center Menu", entries); 
}; 

Grazie!

risposta

8

Non credo che sia possibile, esattamente come avete scritto, ma lo si può fare nel modo seguente:

function onOpen() { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
    var entries = [{ 
    name : "Summary", 
    functionName : "myParameterisedOpen", 
    } 
    ]; 
    sheet.addMenu("Script Center Menu", entries); 
}; 

function myParameterisedOpen() { 
    myOnOpen("Some value"); 
}; 
+0

Grazie! Questa è una soluzione semplice con cui posso convivere! – adifire

0

Così, ho voluto creare una serie di funzioni parametrizzate come questo, ma basato dinamicamente su ciò che era nel mio foglio. Dopo un sacco di tentativi ed errori, e ho capito che c'è un debugger in Google Script, ho trovato che funziona:

function onOpen() { 
    var name = 'bob'; 
    var functionName = 'generate' + name + 'Schedule'; 
    this[functionName] = function() { return generateSchedule(name); } 
    generatebobSchedule(); 
} 

function generateSchedule(e) { 
    Browser.msgBox("Alert", e, Browser.Buttons.OK); 
} 
+0

Non importa. Se chiami generatebobSchedule più tardi, questo sarà stato cancellato, quindi nessun generatebobSchedule. – Gary

Problemi correlati