Descargo de responsabilidad: solo soy nuevo en la codificación y solo quiero automatizar las cosas en mi trabajo.
Quiero copiar datos de la hoja 'Entrada de datos' a otra hoja especificada por la celda en la hoja 'Entrada de datos'.
aquí está el código que estoy usando:
function DataEntry() { let spreadSheet = SpreadsheetApp.getActiveSpreadsheet(); let sourceSheet = spreadSheet.getSheetByName('Data Entry'); let sourceRange = sourceSheet.getDataRange(); let sourceValues = sourceRange.getValues(); let rowCount = sourceValues.length(); let columnCount = sourceValues[0].length(); let targetSheet = spreadSheet.getSheetByName('6'); let targetRange = targetSheet.getRange(2,1,rowCount,columnCount); targetRange.setValues(sourceValues); }En la hoja de origen, quiero copiar los datos a partir de la fila 3, columna L. (la cantidad de filas varía en cada lote de datos)
Luego en la hoja de destino, que será especificada por una celda en la hoja de origen (celda T2). El pegado debe comenzar en la fila 2, columna A.
function DataEntry() { let spreadSheet = SpreadsheetApp.getActiveSpreadsheet(); let sourceSheet = spreadSheet.getSheetByName('Data Entry'); let sourceRange = sourceSheet.getDataRange(); let sourceValues = sourceRange.getValues(); let sheetName = sourceValues[1][19]; sourceValues = sourceValues.slice(2).map(row => row.slice(11)); let rowCount = sourceValues.length; let columnCount = sourceValues[0].length; let targetSheet = spreadSheet.getSheetByName(sheetName); let targetRange = targetSheet.getRange(2,1,rowCount,columnCount); targetRange.setValues(sourceValues); }1 y 19 , correspondiente a T2 ).sourceSheet.getRange("L3:L").getValues().flat().filter(String) ), pero de esta manera está minimizando la cantidad de llamadas al servicio spreadheet , lo cual es una buena práctica .