¿Cómo convierto una columna de URL de texto en hipervínculos activos en Excel?


275

Tengo una columna en Excel, en la que tengo todos los valores de URL del sitio web. Mi pregunta es que quiero convertir los valores de URL en enlaces activos. Hay alrededor de 200 entradas en esa columna con diferentes URL en todas las celdas. ¿Hay alguna manera de crear hipervínculos activos a todas las celdas sin escribir una macro?

Respuestas:


314

Si no desea hacer una macro y siempre y cuando no le importe una columna adicional, simplemente cree una nueva columna junto a su columna de URL.

En la nueva columna, escriba la fórmula =HYPERLINK(A1)(reemplazando A1 con cualquier celda que le interese). Luego copie la fórmula en el resto de las 200 entradas.

NOTA: Esta solución no funciona si la celda A1 contiene una cadena de más de 255 caracteres. Da como resultado un #VALUE!error


2
Si mi columna A contiene 200 valores de enlace, ¿es posible escribir una fórmula que vincule los 200 valores y los reescriba en la columna A, en lugar de crear una nueva columna?
desarrollador

1
¡Excelente! Lo mejor es que este paso es tan simple que puedo pasar archivos CSV a un laico y él puede generar URLS fácilmente.
Cardin Lee JH

3
Para que sea una columna, simplemente copie la columna de hipervínculo y "pegue el valor" en la columna que desee conservar.
Mike

1
Esta debe ser una respuesta aceptada, ya que resuelve la mayoría de los casos de uso.
Jay

Ocultar la columna sin
formato

94

Crea la macro como aquí:

En el menú Herramientas en Microsoft Excel, elija Macro y luego haga clic en Editor de Visual Basic. En el menú Insertar, haga clic en Módulo. Copie y pegue este código en la ventana de código del módulo. Se denominará automáticamente HyperAdd.

Sub HyperAdd()

    'Converts each text hyperlink selected into a working hyperlink

    For Each xCell In Selection
        ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=xCell.Formula
    Next xCell

End Sub

Cuando termine de pegar su macro, haga clic en Cerrar y volver a Microsoft Excel en el menú Archivo.

Luego seleccione las celdas requeridas y haga clic en macro y haga clic en ejecutar.

NOTA ¡NO seleccione la columna completa! Seleccione SOLO las celdas que desea cambiar a enlaces en los que se puede hacer clic; de lo contrario, terminará en un bucle interminable y tendrá que reiniciar Excel. ¡Hecho!


2
Agregue Dim xCell As Range si está utilizando la opción explícita. +1 para una solución que cambia la celda (según lo solicitado) y proporciona el código que lo hace.
Praesagus

Esto funcionó bien para mí, dado que tenía alrededor de 50,000 enlaces en una hoja de cálculo que necesitaba actualizarse y tenía que hacerlo en trozos o Excel se bloquearía.
ATek

2
Para convertir las direcciones de correo electrónico en hipervínculos, cambie Address:=xCell.FormulaaAddress:="mailto:" & xCell.Formula
Danny Beckett el

Además, para las URL que no comiencen con http://esto, debe agregarse (use el cambio anterior, pero sustitúyalo mailto:con http://. De lo contrario, los hipervínculos no funcionan.
Danny Beckett,

1
Funciona genial. FYI Excel 2016 tiene un límite de 66,530 hipervínculos por hoja de trabajo, por lo tanto, espere un eventual error de tiempo de ejecución si excede eso. support.office.com/en-us/article/…
Christopher O'Brien

24

Aquí hay una forma que encontré. Estoy en una Mac con Excel 2011. Si la columna B tenía los valores de texto que desea que sean hipervínculos, coloque esta fórmula en la celda C1 (o D1 o lo que sea, siempre que sea una columna libre): =HYPERLINK(B1,B1) esto insertará un hipervínculo con la ubicación como texto del enlace y el "nombre descriptivo" como texto del enlace. Si tiene otra columna que tiene un nombre descriptivo para cada enlace, también puede usarla. Luego, puede ocultar la columna de texto si no desea verla.

Si tiene una lista de ID de algo, y las URL eran todas http://website.com/folder/ID, como:

A1  | B1
101 | http://website.com/folder/101
102 | http://website.com/folder/102
103 | http://website.com/folder/103
104 | http://website.com/folder/104

podría usar algo como =HYPERLINK("http://website.com/folder/"&A1,A1)y no necesitaría la lista de URL. Esa fue mi situación y funcionó muy bien.

De acuerdo con este post: http://excelhints.com/2007/06/12/hyperlink-formula-in-excel/ este método también funcionará en Excel 2007.


Funciona en Windows, Excel 2013 y es una excelente alternativa a una columna adicional.
mdisibio

Para su información, para Open Office, lo anterior dio un error, pero parece que = HYPERLINK (C1) funciona si se le da un solo parámetro
tonypdmtr

19

OK, aquí hay una solución hokey, pero no puedo entender cómo hacer que Excel evalúe una columna de URL como hipervínculos en masa.

  1. Crea una fórmula, ="=hyperlink(""" & A1 & """)"
  2. Arrastre hacia abajo
  3. Copiar nueva columna de fórmula
  4. Pegue valores especiales solo sobre la columna original
  5. Resalte la columna, haga clic en Ctrl- H(para reemplazar), encuentre y reemplace =con =(de alguna manera fuerza la reevaluación de las celdas).
  6. Ahora se debe hacer clic en las celdas como hipervínculos. Si desea el estilo azul / subrayado, simplemente resalte todas las celdas y elija el estilo Hipervínculo.

El estilo de hipervínculo por sí solo no se convertirá en enlaces en los que se pueda hacer clic, y el cuadro de diálogo "Insertar hipervínculo" no parece usar el texto como la dirección para un montón de celdas en masa. Aparte de eso, F2ya Entertravés de todas las células lo haría, pero eso es tedioso para muchas células.


3
Just do = (HYPERLINK (INDIRECTO (DIRECCIÓN (ROW (), COLUMN () + 1)), "Dress" & ROW ())) es más fácil
Nick Turner

De acuerdo, esta es la mejor respuesta que no requiere mantener 2 columnas.
mate

+1 Para el Reemplazar '=' -> '='. que lo que busco Gracias.
Desarrollador

18

Manera bastante fácil para listas bastante cortas:

  1. Haga doble clic en el cuadro donde está la url.
  2. Entrar

Tienes tu enlace;)


14
Uso F2 para editar una celda, luego ingreso, varias veces para ejecutar rápidamente mi lista. Sencillo. ¡Gracias!
Bryan Ash

1
Esto más el comentario sobre F2 me llevó a una columna de 160 hipervínculos en aproximadamente un minuto. Así que sí, este es el camino a seguir si la columna es lo suficientemente corta.
Trevor Brown

No creo que esto pueda ser una solución para alguien con cientos de celdas para convertir.
Ma3x

Tengo 287,000 filas. Llorar.
thejohnbackes

12

Si agregar una columna adicional con los hipervínculos no es una opción, la alternativa es utilizar un editor externo para encerrar su hipervínculo =hyperlink("y "), para obtener=hyperlink("originalCellContent")

Si tiene Notepad ++, esta es una receta que puede usar para realizar esta operación de forma semiautomática:

  • Copie la columna de direcciones a Notepad ++
  • Mantener ALT- SHIFTprensado, se extendió el cursor desde la esquina superior izquierda a la esquina inferior izquierda, y el tipo =hyperlink(". Esto se agrega =hyperlink("al comienzo de cada entrada.
  • Abra el menú "Reemplazar" ( Ctrl- H), active las expresiones regulares ( ALT- G) y reemplace $(final de línea) con "\). Esto agrega una cita cerrada y un paréntesis cerrado (que se debe escapar \cuando se activan las expresiones regulares) al final de cada línea.
  • Pegue los datos en Excel. En la práctica, solo copie los datos y seleccione la primera celda de la columna donde desea que terminen los datos.

Gran respuesta. Este es el único camino a seguir si no desea columnas adicionales. La solución se puede utilizar para cualquier tipo de editor o lenguaje de programación (no solo Notepad ++). En Excel 2010, esto crea enlaces en los que se puede hacer clic, pero tuve que aplicar manualmente el "estilo de formato de hipervínculo" para que parecieran realmente enlaces (es decir, subrayados en azul).
absurdo

Nota: Esto no requiere notepad ++ ... solo por razones de claridad, puede hacerlo con cualquier editor de texto. El truco es simplemente envolver cada línea con =hyperlink("__linecontentgoeshere__")... para aquellos que pueden confundirse con la mención de notepad ++
dreftymac

@dreftymac Esto proporciona una receta de cómo hacer esto casi automáticamente, no editando línea por línea. Aprovecha la capacidad de Notepad ++ para extender el cursor en varias líneas y el soporte de expresiones regulares; otros editores pueden tener funciones similares. Estoy aclarando al comienzo de mi respuesta cuál es el resultado esperado, que debería eliminar el malentendido.
Antonio

1
// Estoy aclarando al comienzo de mi respuesta cuál es el resultado deseado // Gracias por enfatizar su punto. No estaba criticando su respuesta, solo dejándola un poco más clara para aquellos que podrían no saber nada sobre Notepad ++, y tal vez no se den cuenta de que es simplemente uno de los muchos editores de texto que pueden hacer este tipo de cosas. Sé que te das cuenta de eso, pero no todos lo hacen.
dreftymac

1
También puede componer la fórmula en Excel con ="=HYPERLINK("""&A1&""")"(suponiendo que la URL esté en A1). Luego copie el resultado en el Bloc de notas y vuelva a Excel (puede haber una mejor manera). Ahora tiene hipervínculos que funcionan: puede aplicarles el estilo de hipervínculo desde el panel Estilos para obtener el aspecto subrayado azul. Si usted tiene la etiqueta de enlace en la columna B, puede utilizar esta fórmula: ="=HYPERLINK("""&A1&""";"""&B1&""")".
Jonáš Jančařík

7

Este método funciona para mí usando la función de hipervínculo:

=HYPERLINK("http://"&B10,B10)

¿Dónde B10está la celda que contiene la versión de texto de la URL (en este ejemplo)?


= HYPERLINK ("http: //" & B10, B10) no funcionó en mi Excel 2013, sin embargo = HYPERLINK ("http: //" & B10) SÍ funcionó.
agibsen

5

Con Excel 2007 en Windows, encontré estos pasos más simples;

  1. Seleccionar celdas con las URL no activas
  2. Copiar
  3. Pegar como hipervínculo

1
En una versión posterior (estoy usando Office 2011), esto no funciona: solo obtengo un hipervínculo a un archivo de escritorio (este), no a la URL que se muestra en la celda. por ejemplo, archivo: // localhost / Users / xxxx / Desktop / Blahblahblah File Name.xlsx - Sheet1! A2
Dannid

4

Me sorprendió que Excel no hiciera esto automáticamente, así que esta es mi solución, espero que sea útil para otros

  1. Copie toda la columna al portapapeles
  2. Abre esto en tu Chrome o Firefox

data:text/html,<button onclick="document.write(document.body.querySelector('textarea').value.split('\n').map(x => '<a href=\'' + x + '\'>' + x + '</a>').join('<br>'))">Linkify</button><br><textarea></textarea>

  1. Pegue la columna en la página que acaba de abrir en el navegador y presione "Linkify"
  2. Copie el resultado de la pestaña a la columna en Excel

En lugar del paso dos, puede usar la página a continuación, primero, haga clic en "Ejecutar fragmento de código" y luego pegue la columna en él

<button onclick="document.write(document.body.querySelector('textarea').value.split('\n').map(x => '<a href=\'' + x + '\'>' + x + '</a>').join('<br>'))">Linkify</button><br><textarea></textarea>


3

Para mí, simplemente copié toda la columna que tiene las URL en formato de texto en otra aplicación (por ejemplo, Evernote), y cuando se pegaron allí se convirtieron en enlaces, y luego las volví a copiar en Excel.

Lo único aquí es que debe asegurarse de que los datos que copia de nuevo se alineen con el resto de las columnas.


2

Prueba esto:

= HIPERVINCULO ("mailto:" & A1, A1)

Reemplace A1 con su texto de la celda de la dirección de correo electrónico.


2

Descubrí que ninguno de los métodos aquí funcionaba si el hipervínculo no incluía http: // ya que se vinculaban a ubicaciones locales.

También quería engañar el script ya que los usuarios no podrían mantenerlo ellos mismos y no estaría disponible.

Solo se ejecutará en celdas en un rango seleccionado si contienen un punto y ningún espacio. Solo funcionará para hasta 10,000 celdas.

Sub HyperAdd()
Dim CellsWithSpaces As String
    'Converts each text hyperlink selected into a working hyperlink
    Application.ScreenUpdating = False
    Dim NotPresent As Integer
    NotPresent = 0

    For Each xCell In Selection
        xCell.Formula = Trim(xCell.Formula)
        If xCell.Formula = "" Or InStr(xCell.Formula, ".") = NotPresent Then
        'Do nothing if the cell is blank or contains no dots
        Else
            If InStr(xCell.Formula, " ") <> 0 Then
                CellsWithSpaces = CellsWithSpaces & ", " & Replace(xCell.Address, "$", "")
                 GoTo Nextxcell
            End If

            If InStr(xCell.Formula, "http") <> 0 Then
                Hyperstring = Trim(xCell.Formula)
            Else
                Hyperstring = "http://" & Trim(xCell.Formula)
            End If

            ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=Hyperstring

        End If
        i = i + 1
        If i = 10000 Then Exit Sub
Nextxcell:
      Next xCell
    If Not CellsWithSpaces = "" Then
        MsgBox ("Please remove spaces from the following cells:" & CellsWithSpaces)
    End If
Application.ScreenUpdating = True
End Sub

1
Gracias, esto funcionó para las direcciones de correo electrónico dentro de un documento de Excel. He probado algunos otros métodos diferentes, pero este fue el que funcionó, aunque necesitaba cambiar http: // a mailto:
bawpie

2
  1. Cree una nueva columna temporal de hipervínculos con la fórmula = HYPERLINK ()
  2. Copie esa columna en Microsoft Word (copie al portapapeles solo después de que Word se esté ejecutando).
  3. Copie todo en el nuevo documento de Word (Ctrl + A, luego Ctrl + C).
  4. Pegue en Excel, reemplazando la columna de texto original. Eliminar la columna temporal con la fórmula.

1

Puede insertar la fórmula =HYPERLINK(<your_cell>,<your_cell>)en la celda adyacente y arrastrarla hasta el final. Esto le dará una columna con todos los enlaces. Ahora, puede seleccionar su columna original haciendo clic en el encabezado, haga clic derecho y seleccione Hide.


1

Coloque las URL en una tabla HTML, cargue la página HTML en un navegador, copie el contenido de esa página y péguela en Excel. En este punto, las URL se conservan como enlaces activos.

La solución se propuso en http://answers.microsoft.com/en-us/mac/forum/macoffice2008-macexcel/how-to-copy-and-paste-to-mac-excel-2008-a-list-of/ c5fa2890-acf5-461d-adb5-32480855e11e por (Jim Gordon Mac MVP) [ http://answers.microsoft.com/en-us/profile/75a2b744-a259-49bb-8eb1-7db61dae9e78]

Encontré que funcionó.

Tenía estas URL:

https://twitter.com/keeseter/status/578350771235872768/photo/1 https://instagram.com/p/ys5ASPCDEV/ https://igcdn-photos-ga.akamaihd.net/hphotos-ak-xfa1/t51 .2885-15 / 10881854_329617847240910_1814142151_n.jpg https://twitter.com/ranadotson/status/539485028712189952/photo/1 https://instagram.com/p/0OgdvyxMhW/ https://instagram.com/p/1nynTiiLSb/

Los puse en un archivo HTML (links.html) como este:

<table>
<tr><td><a href="https://twitter.com/keeseter/status/578350771235872768/photo/1">https://twitter.com/keeseter/status/578350771235872768/photo/1</a></td></tr>
<tr><td><a href="https://instagram.com/p/ys5ASPCDEV/">https://instagram.com/p/ys5ASPCDEV/</a></td></tr>
<tr><td><a href="https://igcdn-photos-g-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-15/10881854_329617847240910_1814142151_n.jpg">https://igcdn-photos-g-a.akamaihd.net/hphotos-ak-xfa1/t51.2885-15/10881854_329617847240910_1814142151_n.jpg</a></td></tr>
<tr><td><a href="https://twitter.com/ranadotson/status/539485028712189952/photo/1">https://twitter.com/ranadotson/status/539485028712189952/photo/1</a></td></tr>
<tr><td><a href="https://instagram.com/p/0OgdvyxMhW/">https://instagram.com/p/0OgdvyxMhW/</a></td></tr>
</table>

Luego cargué los links.html en mi navegador, los copié, los pegué en Excel y los enlaces estaban activos.


1

Gracias Cassiopeia por el código. Cambié su código para trabajar con direcciones locales e hice pequeños cambios en sus condiciones. Eliminé las siguientes condiciones:

  1. Cambiar http:/afile:///
  2. Se eliminaron todo tipo de condiciones de espacio en blanco
  3. Se modificó la condición del rango de celdas de 10k a 100k

Sub HyperAddForLocalLinks()
Dim CellsWithSpaces As String
    'Converts each text hyperlink selected into a working hyperlink
    Application.ScreenUpdating = False
    Dim NotPresent As Integer
    NotPresent = 0

    For Each xCell In Selection
        xCell.Formula = Trim(xCell.Formula)
            If InStr(xCell.Formula, "file:///") <> 0 Then
                Hyperstring = Trim(xCell.Formula)
            Else
                Hyperstring = "file:///" & Trim(xCell.Formula)
            End If

            ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:=Hyperstring

        i = i + 1
        If i = 100000 Then Exit Sub
Nextxcell:
      Next xCell
    Application.ScreenUpdating = True
End Sub

Trabajando perfectamente, hice ~ 7000 hipervínculos en solo un par de segundos. :) Gracias Cassiopeia.
Junaid el

¿Por qué lo definiste NotPresent?
Steffen Roller

Acabo de copiar el código anterior de la respuesta anterior de Cassiopeia. Y lo modifiqué tanto como lo entendí. Entonces no sé si NotPresent es necesario o no. Pero mi código modificado funciona perfectamente bien.
Junaid

1

Tenía una lista de números que alimentan las URL que quiero enlazar. Por ejemplo, tengo la columna A con números de preguntas (es decir, 2595692, 135171) y quiero convertir estos números de preguntas en enlaces directos y mostrar solo los números de preguntas.

Así que construí un hipervínculo de solo texto que apuntaba a la Columna A, y lo copié para todos mis números de preguntas:

= "= HYPERLINK (" & "" "http" "&" ":" "" & "" & "&" & "" "// stackoverflow.com/questions/"&A1&""""&","&A1& ")"

Luego copio y pego el valor de esta columna de hipervínculos de texto a otra columna.

Terminas con una columna de texto similar a la siguiente:

= HIPERVINCULO ("http" & ":" & "// stackoverflow.com/questions/2595692",2595692)

Luego seleccioné estos elementos pegados y ejecuté la macro F2Entry que sigue:

Sub F2Enter()
Dim cell As Range
Application.Calculation = xlCalculationManual
For Each cell In Selection
    cell.Activate
    cell = Trim(cell)
Next cell
Application.Calculation = xlCalculationAutomatic
EndSub

Luego eliminé la columna de entrada de texto y la Columna A.

Terminé con una sola columna de números de preguntas vinculados:

2595692

135171

etc.

Salud


0

Si copia el contenido del texto en una nueva columna y usa:

=HYPERLINK("http://"&B10,B10) 

en tu columna original. Luego use $para la columna para que se vea así:

=HYPERLINK("http://"&$B10,$B10)

Esa es la única forma en que funcionó para mí en Excel 2010 en Windows 7. Puede copiar la fórmula.


0

Para cualquier persona que aterrice aquí con Excel 2016, simplemente puede resaltar la columna y luego hacer clic en la Hyperlinkpestaña ubicada en la Homecinta en el Stylescuadro.

ingrese la descripción de la imagen aquí

Editar: Desafortunadamente, esto solo actualiza el estilo de celda, no la función.


3
Eso solo da los estilos de celda, no hace que se pueda hacer clic en la URL.
stenlytw

1
Sí, pensé que esta era una gran solución, pero no funciona. Realmente me desconcierta que esto sea tan difícil.
Dan

Acabo de probar esto y ustedes dos están en lo correcto; Me engañaron los estilos celulares.
jGroot

@jGroot: esto es exactamente lo que quería, solo el estilo sin ninguna funcionalidad.
Raj Rajeshwar Singh Rathore

-1

La manera más fácil aquí

  • Destacar toda la columna
  • haga clic en '' insertar ''
  • haga clic en "Hipervínculo"
  • haga clic en "colocar en este documento"
  • haga clic en Aceptar
  • eso es todo

Eso no funciona, a menos que el enlace sea hacia algo DENTRO del documento.
Erica

Estoy de acuerdo en que la pregunta estaba mal redactada, pero el objetivo previsto es claramente el del texto en sí.
Jason K.

-3

La forma más sencilla en Excel 2010: seleccione la columna con el texto de la URL, luego seleccione Estilo de hipervínculo en la pestaña Inicio. Todas las URL de la columna ahora son hipervínculos.

También hacer doble clic en cada celda al final del texto de la URL y agregar un espacio en blanco o simplemente ingresar también producirá un hipervínculo. Similar a la forma en que tiene que crear enlaces URL en correos electrónicos de MS Outlook.


44
No son hipervínculos, parecen hipervínculos. Eso es solo estilo.
Erica

-5

Hay una manera muy simple de hacer esto. Cree un hipervínculo y luego use el pintor de formato para copiar el formato. Creará un hipervínculo para cada elemento.


8
Esto no funciona, solo copia el formato para que se vean como hipervínculos.
reergymerej 02 de
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.