Come faccio a convertire una colonna di URL di testo in collegamenti ipertestuali attivi in ​​Excel?


275

Ho una colonna in Excel, in cui ho tutti i valori dell'URL del sito web. La mia domanda è: voglio trasformare i valori dell'URL in collegamenti attivi. Ci sono circa 200 voci in quella colonna con diversi URL in tutte le celle. C'è un modo per creare collegamenti ipertestuali attivi a tutte le celle senza scrivere una macro.

Risposte:


314

Se non vuoi creare una macro e fintanto che non ti dispiace una colonna aggiuntiva, crea una nuova colonna accanto alla colonna degli URL.

Nella nuova colonna digita la formula =HYPERLINK(A1)(sostituendo A1 con qualsiasi cella ti interessa). Quindi copia la formula per il resto delle 200 voci.

NOTA: questa soluzione non funziona se la cella A1 contiene una stringa più lunga di 255 caratteri. Si traduce in un #VALUE!errore


2
Se la mia colonna A contiene 200 valori di collegamento, è possibile scrivere una formula che collegherebbe i 200 valori e riscriverlo nella colonna A, invece di creare una nuova colonna?
sviluppatore

1
Eccellente! La cosa migliore è che questo passaggio è così semplice che posso passare i file CSV a un laico e lui può generare facilmente URL da esso.
Cardin Lee JH,

3
Per farlo in modo che sia una colonna basta copiare la colonna del collegamento ipertestuale e "incollare il valore" in qualsiasi colonna che si desidera conservare.
Mike,

1
Questa dovrebbe essere una risposta accettata, poiché risolve la maggior parte dei casi d'uso.
Jay,

Nascondi la colonna raw che non è un collegamento ipertestuale
RickAndMSFT,

94

Crea la macro come qui:

Dal menu Strumenti in Microsoft Excel, scegliere Macro, quindi Visual Basic Editor. Nel menu Inserisci, fare clic su modulo. Copia e incolla questo codice nella finestra del codice del modulo. Si chiamerà automaticamente 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

Al termine incollare la macro, fare clic su Chiudi e torna a Microsoft Excel dal menu File.

Quindi selezionare le celle richieste e fare clic sulla macro e fare clic su Esegui.

NOTA NON selezionare l'intera colonna! Seleziona SOLO le celle che desideri vengano modificate in collegamenti selezionabili, altrimenti finirai in un ciclo infinito e dovrai riavviare Excel! Fatto!


2
Aggiungi Dim xCell come intervallo se si utilizza l'opzione esplicita. +1 per una soluzione che cambia la cella (come richiesto) e fornisce il codice che lo fa.
Praesagus,

Questo ha funzionato bene per me, ammesso che avessi circa 50.000 collegamenti in un foglio di calcolo che necessitava di un aggiornamento e che dovevo farlo a pezzi o Excel andava in crash.
ATek,

2
Per trasformare gli indirizzi e-mail in collegamenti ipertestuali, cambia Address:=xCell.FormulainAddress:="mailto:" & xCell.Formula
Danny Beckett il

Inoltre, per gli URL che non iniziano con http://questo deve essere aggiunto (utilizzare la modifica sopra, ma sostituirlo mailto:con http://. Altrimenti i collegamenti ipertestuali non funzionano.
Danny Beckett,

1
Funziona alla grande. FYI Excel 2016 ha un limite di 66.530 collegamenti ipertestuali per foglio di lavoro, quindi aspettati un eventuale errore di runtime se lo superi. support.office.com/en-us/article/…
Christopher O'Brien il

24

Ecco un modo che ho trovato. Sono su un Mac con Excel 2011. Se la colonna B aveva i valori di testo che vuoi essere collegamenti ipertestuali, inserisci questa formula nella cella C1 (o D1 o qualsiasi altra cosa purché sia ​​una colonna libera): =HYPERLINK(B1,B1) questo inserirà un collegamento ipertestuale con la posizione come testo del collegamento e il "nome descrittivo" come testo del collegamento. Se hai un'altra colonna con un nome descrittivo per ogni link, puoi usarlo anche tu. Quindi, potresti nascondere la colonna di testo se non volevi vederla.

Se hai un elenco di ID di qualcosa e gli URL erano tutti http://website.com/folder/ID, come:

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

potresti usare qualcosa del genere =HYPERLINK("http://website.com/folder/"&A1,A1)e non avresti bisogno dell'elenco degli URL. Questa era la mia situazione e ha funzionato bene.

Secondo questo post: http://excelhints.com/2007/06/12/hyperlink-formula-in-excel/ questo metodo funzionerà anche in Excel 2007.


Funziona in Windows, Excel 2013 ed è un'ottima alternativa a una colonna aggiuntiva.
mdisibio,

Cordiali saluti, per Open Office quanto sopra ha dato un errore ma sembra che = HYPERLINK (C1)
funzioni

19

OK, ecco una soluzione hokey, ma non riesco proprio a capire come fare in modo che Excel valuti una colonna di URL come collegamenti ipertestuali in blocco.

  1. Crea una formula, ="=hyperlink(""" & A1 & """)"
  2. Trascina giù
  3. Copia la nuova colonna formula
  4. Incolla valori speciali solo sulla colonna originale
  5. Evidenzia colonna, fai clic su Ctrl- H(per sostituire), trova e sostituisci =con =(in qualche modo forza la rivalutazione delle celle).
  6. Le celle dovrebbero ora essere selezionabili come collegamenti ipertestuali. Se desideri lo stile blu / sottolineato, evidenzia tutte le celle e scegli lo stile Collegamento ipertestuale.

Lo stile del collegamento ipertestuale da solo non viene convertito in collegamenti selezionabili e la finestra di dialogo "Inserisci collegamento ipertestuale" non sembra utilizzare il testo come indirizzo per un gruppo di celle in blocco. A parte questo, F2e Enterattraverso tutte le cellule lo farebbe, ma è noioso per molte cellule.


3
Basta fare = (HYPERLINK (INDIRETTO (INDIRIZZO (ROW (), COLUMN () + 1)), "Dress" e ROW ())) è più facile
Nick Turner

D'accordo, questa è la risposta migliore che non richiede il mantenimento di 2 colonne.
opaco

+1 per Sostituisci '=' -> '='. quello che cerco. Grazie.
Sviluppatore

18

Modo abbastanza semplice per elenchi piuttosto brevi:

  1. Fare doppio clic sulla casella in cui si trova l'URL
  2. accedere

Hai il tuo link;)


14
Uso F2 per modificare una cella, quindi invio ripetutamente per scorrere rapidamente l'elenco. Semplice. Grazie!
Bryan Ash,

1
Questo più il commento su F2 mi ha portato a una colonna di 160 hyperlink in circa un minuto. Quindi sì, questa è la strada da percorrere se la colonna è abbastanza corta.
Trevor Brown,

Non penso che questa potrebbe essere una soluzione per qualcuno con centinaia di celle da convertire.
Ma3x,

Ho 287.000 righe. Piangere.
thejohnbackes,

12

Se l' aggiunta di una colonna aggiuntiva con i collegamenti ipertestuali non è un'opzione, l'alternativa è quella di utilizzare un editor esterno per racchiudere il collegamento ipertestuale =hyperlink("e "), al fine di ottenere=hyperlink("originalCellContent")

Se hai Notepad ++, questa è una ricetta che puoi usare per eseguire questa operazione in modo semi-automatico:

  • Copia la colonna degli indirizzi in Notepad ++
  • Mantenendo ALT- SHIFTpremuto, esteso il cursore dalla alto a sinistra verso l'angolo in basso a sinistra, e il tipo =hyperlink(". Ciò si aggiunge =hyperlink("all'inizio di ogni voce.
  • Apri il menu "Sostituisci" ( Ctrl- H), attiva le espressioni regolari ( ALT- G) e sostituisci $(fine riga) con "\). Ciò aggiunge una virgoletta chiusa e una parentesi chiusa (che deve essere evitata \quando si attivano le espressioni regolari) alla fine di ogni riga.
  • Copia i dati in Excel. In pratica, basta copiare i dati e selezionare la prima cella della colonna in cui si desidera che i dati finiscano.

Bella risposta. Questa è l'unica strada da percorrere se non vuoi colonne extra. La soluzione può essere utilizzata per qualsiasi tipo di editor o linguaggio di programmazione (non solo Notepad ++). In Excel 2010 questo crea collegamenti cliccabili, ma ho dovuto applicare manualmente lo "stile di formattazione dei collegamenti ipertestuali" per farli sembrare dei collegamenti (cioè sottolineati in blu).
assurdo

Nota: questo non richiede notepad ++ ... solo per motivi di chiarezza, puoi farlo con qualsiasi editor di testo. Il trucco è semplicemente avvolgere ogni riga con =hyperlink("__linecontentgoeshere__")... per coloro che potrebbero essere fuorviati dalla menzione del blocco note ++
dreftymac,

@dreftymac Questo dà una ricetta su come farlo quasi automaticamente, non modificando riga per riga. Sfrutta la funzionalità di Notepad ++ per estendere il cursore su più righe e il supporto di espressioni regolari; altri editor potrebbero avere funzioni simili. Sto chiarendo all'inizio della mia risposta qual è il risultato previsto, che dovrebbe eliminare l'incomprensione.
Antonio,

1
// Sto chiarendo all'inizio della mia risposta qual è il risultato previsto // Grazie per aver enfatizzato il tuo punto. Non stavo criticando la tua risposta, ma solo rendendola un po 'più chiara per coloro che potrebbero non sapere nulla di Notepad ++ e potrebbero non rendersi conto che è semplicemente uno dei tanti editor di testo là fuori che può fare questo tipo di cose. So che te ne rendi conto, ma non tutti lo fanno.
dreftymac,

1
Puoi anche comporre la formula in Excel con ="=HYPERLINK("""&A1&""")"(supponendo che l'URL sia in A1). Quindi copia il risultato su Blocco note e torna su Excel (potrebbe esserci un modo migliore). Ora hai collegamenti ipertestuali funzionanti: puoi applicare lo stile dei collegamenti ipertestuali dal pannello Stili per ottenere l'aspetto sottolineato blu. Se avete l'etichetta di link nella colonna B, è possibile utilizzare questa formula: ="=HYPERLINK("""&A1&""";"""&B1&""")".
Jonáš Jančařík,

7

Questo metodo funziona per me utilizzando la funzione hyperlink:

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

Dove si B10trova la cella contenente la versione di testo dell'URL (in questo esempio).


= HYPERLINK ("http: //" e B10, B10) non funzionavano nel mio Excel 2013, tuttavia = HYPERLINK ("http: //" & B10) DID lavoro.
agibsen

5

Con Excel 2007 su Windows, ho trovato questi passaggi più semplici;

  1. Seleziona le celle con gli URL non attivi
  2. copia
  3. Incolla come collegamento ipertestuale

1
Nella versione successiva (sto usando Office 2011), questo non funziona - ottengo solo un collegamento ipertestuale a un file desktop (questo), non all'URL mostrato nella cella. es. file: // localhost / Users / xxxx / Desktop / Blahblahblah Nome file.xlsx - Foglio1! A2
Dannid

4

Ho scioccato che Excel non l'abbia fatto automaticamente, quindi ecco la mia soluzione spero possa essere utile per gli altri,

  1. Copia l'intera colonna negli appunti
  2. Apri questo sul tuo 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. Incolla la colonna nella pagina che hai appena aperto sul browser e premi "Linkify"
  2. Copia il risultato dalla scheda alla colonna su Excel

Invece passaggio due, è possibile utilizzare la pagina seguente, prima fare clic su "Esegui snippet di codice" quindi incollare la colonna su di esso

<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

Per me ho appena copiato l'intera colonna che ha gli URL in formato testo in un'altra applicazione (diciamo Evernote), e quando sono stati incollati lì sono diventati collegamenti e poi li ho copiati nuovamente in Excel.

L'unica cosa qui è che devi assicurarti che i dati che copi siano allineati con il resto delle colonne.



2

Ho scoperto che nessuno dei metodi qui funzionava se il collegamento ipertestuale non includeva http: // poiché si collegavano a posizioni locali.

Volevo anche prendere in giro lo script poiché gli utenti non sarebbero stati in grado di gestirlo da soli e non sarei stato disponibile.

Funzionerà su celle in un intervallo selezionato se contengono un punto e nessuno spazio. Funzionerà solo per un massimo di 10.000 celle.

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
Grazie, questo ha funzionato per gli indirizzi e-mail all'interno di un documento Excel - ho provato alcuni altri metodi diversi, ma questo è stato quello che ha funzionato anche se avevo bisogno di cambiare http: // in mailto:
bawpie

2
  1. Crea una nuova colonna temporanea di collegamenti ipertestuali utilizzando formula = HYPERLINK ()
  2. Copia quella colonna in Microsoft Word (copia negli appunti solo dopo l'esecuzione di Word).
  3. Copia tutto nel nuovo documento di parole (ctrl + a, quindi ctrl + c).
  4. Incolla in Excel, sostituendo la colonna di testo originale. Elimina la colonna temporanea con la formula.

1

Puoi inserire la formula =HYPERLINK(<your_cell>,<your_cell>)nella cella adiacente e trascinarla fino in fondo. Questo ti darà una colonna con tutti i link. Ora puoi selezionare la colonna originale facendo clic sull'intestazione, facendo clic con il tasto destro e selezionando Hide.


1

Inserisci gli URL in una tabella HTML, carica la pagina HTML in un browser, copia il contenuto di quella pagina, incolla in Excel. A questo punto gli URL vengono conservati come collegamenti attivi.

La soluzione è stata proposta su 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 di (Jim Gordon Mac MVP) [ http://answers.microsoft.com/en-us/profile/75a2b744-a259-49bb-8eb1-7db61dae9e78]

Ho scoperto che ha funzionato.

Ho avuto questi 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/

Li inserisco in un file HTML (links.html) in questo modo:

<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>

Quindi ho caricato links.html nel mio browser, copiato, incollato in Excel e i collegamenti erano attivi.


1

Grazie Cassiopeia per il codice. Cambio il suo codice per lavorare con indirizzi locali e ho apportato piccole modifiche alle sue condizioni. Ho rimosso le seguenti condizioni:

  1. Cambia http:/infile:///
  2. Rimosso tutto il tipo di condizioni di spazio bianco
  3. Modificata la condizione dell'intervallo di celle 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

Funzionando perfettamente, ho creato ~ 7000 hyperlink in solo un paio di secondi. :) Grazie Cassiopea.
Junaid,

perché hai definito NotPresent?
Steffen Roller,

Ho appena copiato il codice sopra dalla precedente risposta di Cassiopea. E l'ho modificato tanto quanto l'ho capito. Quindi non so se NotPresent sia necessario o meno. Ma il mio codice modificato funziona perfettamente.
Junaid,

1

Ho avuto un elenco di numeri che si inseriscono nell'URL che voglio hotlinked. Ad esempio, ho la colonna A con numeri di domande (ad es. 2595692, 135171) e desidero trasformare questi numeri di domande in hotlink e visualizzare solo i numeri di domanda.

Quindi ho creato un collegamento ipertestuale di solo testo che punta alla colonna A e l'ho copiato per tutti i miei numeri di domanda:

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

Quindi copio - incolla il valore di questa colonna di hyperlink di testo in un'altra colonna.

Si finisce con una colonna di testo simile al seguente:

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

Quindi ho selezionato questi elementi incollati ed eseguito la macro F2Entry che segue:

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

Ho quindi eliminato la colonna di immissione testo e la colonna A.

Ho finito con una singola colonna di numeri di domande hotlink:

2595692

135.171

eccetera.

Saluti


0

Se copi il contenuto del testo in una nuova colonna e usi:

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

sulla tua colonna originale. Quindi utilizzare il $per la colonna in modo che assomigli a questo:

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

Questo è l'unico modo in cui ha funzionato per me su Excel 2010 su Windows 7. Puoi copiare la formula.


0

Per chiunque atterra qui con Excel 2016, puoi semplicemente evidenziare la colonna, quindi fare clic sulla Hyperlinkscheda situata sulla Homebarra multifunzione nella Stylescasella.

inserisci qui la descrizione dell'immagine

Modifica: Sfortunatamente, questo aggiorna solo lo stile della cella, non la funzione.


3
Ciò fornisce solo gli stili di cella, non rende l'URL selezionabile.
stenlytw,

1
Sì, ho pensato che fosse un'ottima soluzione, ma non funziona. Mi sorprende davvero che sia così difficile.
Dan,

Ho appena provato questo e voi due avete ragione; Sono stato ingannato dagli stili delle celle.
jGroot

@jGroot - Questo è esattamente quello che volevo solo lo stile senza alcuna funzionalità.
Raj Rajeshwar Singh Rathore,

-1

Il modo più semplice qui

  • Evidenzia l'intera colonna
  • fai clic su '' inserisci ''
  • fai clic su "Collegamento ipertestuale"
  • fai clic su "inserisci in questo documento"
  • clicca ok
  • È tutto

Ciò non funziona, a meno che il collegamento non sia all'interno di qualcosa all'interno del documento.
Erica,

Sono d'accordo sul fatto che la domanda fosse formulata in modo inadeguato, ma l'obiettivo previsto è chiaramente quello del testo stesso.
Jason K.,

-3

Il modo più semplice in Excel 2010: selezionare la colonna con il testo dell'URL, quindi selezionare Stile collegamento ipertestuale dalla scheda Home. Tutti gli URL nella colonna sono ora collegamenti ipertestuali.

Inoltre, facendo doppio clic su ciascuna cella alla fine del testo dell'URL e aggiungendo uno spazio vuoto o semplicemente invio si produrrà anche un collegamento ipertestuale. Simile al modo in cui è necessario creare collegamenti URL nelle e-mail di MS Outlook.


4
Non sono collegamenti ipertestuali, sembrano collegamenti ipertestuali. Questo è solo uno stile.
Erica,

-5

C'è un modo molto semplice per farlo. Creare un collegamento ipertestuale, quindi utilizzare Copia formato per copiare la formattazione. Creerà un collegamento ipertestuale per ogni elemento.


8
Questo non funziona, copia solo la formattazione in modo che appaiano come hyperlink.
Reergymerej,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.