Soy extremadamente inexperto en javascript y he reconstruido lo que necesito a través de búsquedas en línea y viendo videos. Necesito configurar varias columnas en la fila 4, desde la columna 18 hasta la última columna, como celdas activas para copiar y luego pegar fórmulas hasta la última fila (si es necesario, según los datos de la columna 4). El código que tengo a continuación activa (selecciona) todos los datos desde la columna 18 hasta la última columna (como se pretendía) pero también hasta la última fila (no intencionado). ¿Alguien sabe como corregir esto?
function CopyFormulasDown() { var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var sRA4 = ss.getRange(4,1); //First copy is A4 ..this one works as intended var lr = ss.getLastRow(); var lc = ss.getLastColumn(); var sRR4lc = ss.getRange('R4:'+ lc +'4'); //Trying to select R4 through last col within row4; also tried (4,18+':'+lc), but throws an error: Exception: Cannot convert '18:37' to int. var fillDownRangeA4 = ss.getRange(4,1,lr); var fillDownRangeR4lc = ss.getRange(4,18,lr,lc); // sRA4.activate(); //range cell A4 is copied //sRA4.copyTo(fillDownRangeA4); //copied cell pastes formula down to last row ..WORKS! sRR4lc.activate(); //ROW4 COL18 is selected through to last col as intended, but also selects down to last row.... problem is I didn't tell it to select past row 4... not sure how to correct this // sRR4lc.copyTo(fillDownRangeR4lc); //commented out for now until I can get just row 4 from col 18 through last col copy to work };Dios mío. Después de escribir la pregunta y publicarla, pensé en agregar el lc al lugar de numofcolumns en su lugar. A continuación se muestra el código de trabajo para cualquiera que esté interesado:
function CopyFormulasDown() { var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var sRA4 = ss.getRange(4,1); //copy A4 var lr = ss.getLastRow(); var lc = ss.getLastColumn(); var sRR4lc = ss.getRange(4,18,1,lc); //select R4 through last col within row4 var fillDownRangeA4 = ss.getRange(4,1,lr); var fillDownRangeR4lc = ss.getRange(4,18,lr,lc); sRA4.activate(); //range cell A4 is copied sRA4.copyTo(fillDownRangeA4); //copied cell pastes formula down to last row ..WORKS! sRR4lc.activate(); //ROW4 COL18 is selected through to last col sRR4lc.copyTo(fillDownRangeR4lc); };