Estoy tratando de crear un botón en las hojas de Google que ejecuta un script cada vez que se activa. El script primero debe crear una nueva copia de la plantilla y luego usar esa hoja de Google para reemplazar todo el texto de marcador de posición en esa presentación con datos de las hojas. No estoy seguro de por qué el código no funciona a partir de ahora.
// The following creates the UI button in sheets (This works) function onOpen() { let ui = SpreadsheetApp.getUi(); ui.createMenu('Create Report') .addItem('Create Report', 'executeAll') .addToUi(); } function executeAll (){ var reportTemplate = DriveApp.getFileById('Presentation ID goes Here'); var copiedTemplate = reportTemplate.makeCopy('New Report', DriveApp.getFolderById("Folder ID Goes here")); var skeleton = SlidesApp.openById(copiedTemplate.getId()); var slides = skeleton.getSlides(); return slide1(); function slide1 (){ var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('App Script Input Sheet'); var data = sheet.getRange('E1:F26').getValues; var slide1 = slides[0]; var newslide1 = slide1.duplicate(); var shapes = (newslide1.getShapes()); shapes.forEach(function(shape){ shape.getText().replaceAllText('{{Date}}',data[2]); shape.getText().replaceAllText('{{Title}}',data[3]); shape.getText().replaceAllText('{{Value 1}}',data[4]); shape.getText().replaceAllText('{{Value 2}}',data[5]); //there are more to be replaced. will add once code works. }); } }