Estoy tratando de automatizar completamente un informe de palabras clave en Google Sheet.
Exporto mis datos mensualmente desde una API llamada Supermetrics.
Mi secuencia de comandos a continuación agrega una nueva columna (después de F) y copia los datos en la columna recién creada (solo la parte de 'fecha' de la secuencia de comandos no funciona).
Me gustaría que el encabezado de esta columna sea la fecha de mi exportación de datos.
Debajo del enlace a mi hoja de Google y el guión. ¡De antemano muchas gracias por tu ayuda!
https://docs.google.com/spreadsheets/d/1ZD-3r3sceK0H7Q17agyZqVggH3D6utnEFPy69aP2wUg/edit#gid=0
function insertColumn() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('KW'); var date = new Date(); var valuestocopy = sheet.getRange(2, 6, 14, 1) sheet.insertColumnAfter(6).getRange(1,15).setValue(date).setNumberFormat("DD.MM.YY"); valuestocopy.copyValuesToRange(sheet, 7, 7, 2, 15); }Noté que su código no funcionó debido a su uso de la función getRange() en la línea 6. Lo que hizo su código fue apuntar a la celda en la fila 1, columna 15 e insertar la fecha en esta celda. Entonces, lo que hice fue apuntar la función a la celda deseada (G1).
function myFunction() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('KW'); var date = new Date(); var valuestocopy = sheet.getRange(2, 6, sheet.getLastRow(), 1); sheet.insertColumnAfter(6).getRange("G1").setValue(date).setNumberFormat("DD/MM/YY"); valuestocopy.copyValuesToRange(sheet, 7, 7, 2, sheet.getLastRow()); sheet.getRange(1,6,sheet.getLastRow(),1).clearContent(); }Con este código, la marca de tiempo ya se genera a partir del script y se pega en la fila 1 de la columna recién insertada en lugar de copiar los datos almacenados en la celda C18 que también contiene la marca de tiempo actual.
Ficha antes de la aplicación del código: https://i.stack.imgur.com/DEBat.png
Ficha tras la aplicación del código: https://i.stack.imgur.com/Xgzup.png
Referencia: copyValuesToRange() getRange(a1Notation) getLastRow()
Editar: agregué la opción sheet.getLastRow() durante la selección de rango para que pueda ajustarse en función de los datos que deben copiarse.