Quiero poner un valor en la celda y obtener un hipervínculo de investigación.
Estoy usando el enlace: https://projudi.tjpr.jus.br/projudi/processo/buscaProcesso.do?actionType=pesquisaSimples&flagNumeroUnico=true&numeroProcesso=
Por ejemplo, escribo un valor (00156610320218160021) en una celda en blanco, y después de esto, el enlace será:
=HYPERLINK("https://projudi.tjpr.jus.br/projudi/processo/buscaProcesso.do?actionType=pesquisaSimples&flagNumeroUnico=true&numeroProcesso=0015661-03.2021.8.16.0021";"0015661-03.2021.8.16.0021") La siguiente celda, si escribo este valor (0012204-19.2019.8.16.0025), el enlace será: =HYPERLINK("https://projudi.tjpr.jus.br/projudi/processo/buscaProcesso.do?actionType=pesquisaSimples&flagNumeroUnico=true&numeroProcesso=0012204-19.2019.8.16.0025";"0012204-19.2019.8.16.0025")
Cosas importantes:
Antes de escribir estos números, la celda debe estar en blanco;
El hipervínculo debe cambiar según el valor de la celda;
Básicamente, quiero poner un valor en cada celda de la columna A y obtener estos enlaces diferentes.
Alguien sabe como puedo hacer esto?
Descripción
Simplemente podría tener una fórmula en la siguiente celda y concatenar el contenido de la columna A de la celda. Otra opción es usar un activador simple onEdit(e) para reemplazar el contenido de la columna B.
Fórmula
=HYPERLINK("https://projudi.tjpr.jus.br/projudi/processo/buscaProcesso.do?actionType=pesquisaSimples&flagNumeroUnico=true&numeroProcesso="&A1&";"&A1)Guion
function onEdit(e) { if( e.range.getSheet().getName() === "Sheet1" ) { // Make sure we are on the right sheet if( e.range.getColumn() === 1 ) { // Make sure the edit occured in column A var link = "https://projudi.tjpr.jus.br/projudi/processo/buscaProcesso.do?actionType=pesquisaSimples&flagNumeroUnico=true&numeroProcesso="; link = link.concat(e.value,";",e.value); e.range.offset(0,1).setValue(link); } } }Referencia
Me las arreglé para resolver parte del problema de esta manera:
function hyperlink(){ var activeSheet = SpreadsheetApp.getActiveSheet(); var a1 = activeSheet.getSelection().getActiveRange().getA1Notation(); //var a1 = activeSheet.getActiveCell().getA1Notation(); var values = activeSheet.getRange(a1).getValues(); const link = "https://projudi.tjpr.jus.br/projudi/processo/buscaProcesso.do?actionType=pesquisaSimples&flagNumeroUnico=true&numeroProcesso=" var hyperVal= values.map(row=> row.map(col=> `=HYPERLINK("${link}${col}";"${col}")` )); activeSheet.getRange(a1).setValues(hyperVal); activeSheet.getRange(a1).setShowHyperlink(true); /* I initially just tried doing this, but without setting the HYPERLINK formula, it did nothing */ }La solución es para los casos en los que se selecciona la celda.
Quería escribir el valor en la celda y ver automáticamente el enlace. Desafortunadamente, no puedo encontrar una solución para esto.
Aquí hay otra solución de Apps Script que generará los enlaces en cada fila de la columna B cuando realice un cambio en la columna A Podría ser útil si también necesita pegar una gran cantidad de ID en la columna A y desea generarlos todos a la vez.
function onEdit(e) { var editedrange = e.range; //gets the range that triggered the edit event if (editedrange.getColumn() == 1) {//only works if the change occurs on the first column var colvalue var nextcell var url for(var i = 1; i<=editedrange.getNumRows(); i++){ //iterates through all the edited rows in the first column colvalue = editedrange.getCell(i,1).getValue(); //gets value of the cell at row i of column 1 nextcell = editedrange.getCell(i,1).offset(0, 1) // gets the cell in the next column url = `https://projudi.tjpr.jus.br/projudi/processo/buscaProcesso.do?actionType=pesquisaSimples&flagNumeroUnico=true&numeroProcesso=${colvalue}` //builds the URL nextcell.setFormula(`=HYPERLINK("${url}","${colvalue}")`) //sets the URL in a formula on the next cell } } }