Sé que esto se ha hecho antes, pero estoy luchando para que el mío funcione, quiero copiar todos los datos de la hoja 'Plantillas' a la hoja 'Historial'.
Quiero enviar los valores en una nueva fila en la parte inferior de la hoja de historial.
Aquí está mi código de trabajo, solo necesito cambiar dónde se establecen los valores.
var sheetTemplate = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Template');
var sheetHistory = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('History');
var getRange = sheetTemplate.getDataRange();
var DataCopied = SRange.getValues();
sheetHistory.getRange("a2:F7").setValues(DataCopied);
Está utilizando los métodos getDataRange () y getValues () , esto devolverá los valores correspondientes en los que los datos están presentes en una matriz bidimensional, por lo que cuando copie los valores en la nueva hoja con setValues () debe tomar teniendo en cuenta las dimensiones de los datos recuperados para que coincidan, es necesario:
DataCopied
matriz (número de filas) conDataCopied.length
DataCopied
matriz (número de columnas) DataCopied[0].length
.DataCopied
con setValues ()Tu código debería verse así:
function myFunction(){
var sheetTemplate = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Template');
var sheetHistory = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('History');
var getRange = sheetTemplate.getDataRange();
var DataCopied = getRange.getValues();
// I defined the variables for better understanding
var startRow = sheetHistory.getLastRow()+1; // +1 because remember that while a range index starts at 1, 1, the JavaScript array will be indexed from [0][0].
var startColumn = 1;
var numRows = DataCopied.length;
var numColumns = DataCopied[0].length;
sheetHistory.getRange(startRow, startColumn, numRows, numColumns).setValues(DataCopied);
}
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras