Como converter uma coluna de URLs de texto em hiperlinks ativos no Excel?


275

Eu tenho uma coluna no excel, em que tenho todos os valores de URL do site. Minha pergunta é: desejo transformar os valores de URL em links ativos. Existem cerca de 200 entradas nessa coluna com diferentes URLs em todas as células. Existe uma maneira de criar hiperlinks ativos para todas as células sem escrever uma macro.

Respostas:


314

Se você não deseja criar uma macro e contanto que não se importe com uma coluna adicional, crie uma nova coluna ao lado da sua coluna de URLs.

Na nova coluna, digite a fórmula =HYPERLINK(A1)(substituindo A1 por qualquer célula em que você esteja interessado). Em seguida, copie a fórmula para o restante das 200 entradas.

NOTA: Esta solução não funciona se a célula A1 contiver uma cadeia com mais de 255 caracteres. Isso resulta em um #VALUE!erro


2
Se minha coluna A contiver 200 valores de link, é possível escrever uma fórmula que vincule os valores 200 e a reescreva na coluna A, em vez de criar uma nova coluna?
developer

1
Excelente! O melhor é que essa etapa é tão simples que eu posso passar arquivos CSV para um leigo e ele pode gerar URLs facilmente.
Cardin Lee JH

3
Para torná-lo uma coluna, basta copiar a coluna do hiperlink e "colar valor" na coluna que você deseja manter.
4187 Mike

1
Essa resposta deve ser aceita, pois resolve a maioria dos casos de uso.
Jay

Ocultar a coluna matéria que não é um hyperlink
RickAndMSFT

94

Crie a macro como aqui:

No menu Ferramentas no Microsoft Excel, aponte para macro e, em seguida, clique em Editor do Visual Basic. No menu Inserir, clique em módulo. Copie e cole esse código na janela de código do módulo. Ele se chamará 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

Quando terminar de colar sua macro, clique em Fechar e retornar ao Microsoft Excel no menu Arquivo.

Em seguida, selecione as células necessárias e clique em macro e clique em executar.

NOTA NÃO selecione a coluna inteira! Selecione SOMENTE as células que você deseja alterar para links clicáveis; caso contrário, você terminará em um loop sem fim e precisará reiniciar o Excel! Feito!


2
Adicione Dim xCell As Range se você estiver usando a opção explícita. +1 para uma solução que altera a célula (conforme solicitado) e fornece o código que faz isso.
Praesagus

Isso funcionou bem para mim, pois eu tinha cerca de 50.000 links em uma planilha que precisavam ser atualizados e precisavam fazê-lo em pedaços ou no excel.
ATEK

2
Para transformar endereços de email em hiperlinks, altere Address:=xCell.FormulaparaAddress:="mailto:" & xCell.Formula
Danny Beckett

Além disso, para URLs que não começam com http://isso, é necessário adicionar (use a alteração acima, mas substitua mailto:por http://. Caso contrário, os hiperlinks não funcionarão.
Danny Beckett

1
Funciona bem. Para sua informação, o Excel 2016 tem um limite de 66.530 hiperlinks por planilha; portanto, espere um eventual erro em tempo de execução se você exceder esse valor. support.office.com/en-us/article/…
Christopher O'Brien

24

Aqui está uma maneira que eu encontrei. Estou em um Mac usando o Excel 2011. Se a coluna B tiver os valores de texto que você deseja que sejam hiperlinks, coloque essa fórmula na célula C1 (ou D1 ou qualquer outra coisa, desde que seja uma coluna livre): =HYPERLINK(B1,B1) Isso inserirá um hiperlink com o local como texto do link e o "nome amigável" como texto do link. Se você tiver outra coluna que tenha um nome amigável para cada link, poderá usá-lo também. Em seguida, você pode ocultar a coluna de texto se não quiser vê-la.

Se você tiver uma lista de IDs de alguma coisa e os URLs forem todos 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

você poderia usar algo assim =HYPERLINK("http://website.com/folder/"&A1,A1)e não precisaria da lista de URLs. Essa foi a minha situação e funcionou bem.

De acordo com esta publicação: http://excelhints.com/2007/06/12/hyperlink-formula-in-excel/, esse método também funcionará no Excel 2007.


Funciona no Windows, Excel 2013 e é uma ótima alternativa para uma coluna extra.
Mdisibio

FYI, por Open Office acima deu um erro, mas parece que = HYPERLINK (C1) funciona se for dado apenas um parâmetro
tonypdmtr

19

OK, aqui está uma solução sofisticada, mas não consigo descobrir como fazer o Excel avaliar uma coluna de URLs como hiperlinks em massa.

  1. Crie uma fórmula, ="=hyperlink(""" & A1 & """)"
  2. Arraste para baixo
  3. Copiar nova coluna de fórmula
  4. Colar valores especiais somente na coluna original
  5. Destaque a coluna, clique em Ctrl- H(para substituir), localizando e substituindo =por =(de alguma forma força a reavaliação das células).
  6. As células agora devem ser clicáveis ​​como hiperlinks. Se você deseja o estilo azul / sublinhado, realce todas as células e escolha o estilo Hiperlink.

Somente o estilo do hiperlink não será convertido em links clicáveis, e a caixa de diálogo "Inserir hiperlink" parece não usar o texto como o endereço para várias células em massa. Além disso, F2e Enteratravés de todas as células o faria, mas isso é tedioso para muitas células.


3
Basta fazer = (HYPERLINK (INDIRECT (ADDRESS (ROW (), COLUMN () + 1)), "Dress" & ROW ())) é mais fácil
Nick Turner

Concordado, esta é a melhor resposta que não requer manutenção de 2 colunas.
Matt

+1 Para Substituir '=' -> '='. isso que eu procuro. obrigado.
Desenvolvedor

18

Maneira bastante fácil para listas bastante curtas:

  1. Clique duas vezes na caixa em que o URL está
  2. Entrar

Você tem o seu link;)


14
Uso F2 para editar uma célula e, em seguida, insiro várias vezes para percorrer rapidamente minha lista. Simples. Obrigado!
Bryan Ash

1
Isso mais o comentário sobre F2 me levou a uma coluna de 160 hiperlinks em cerca de um minuto. Então, sim, este é o caminho a percorrer se a coluna for curta o suficiente.
Trevor Brown

Eu não acho que isso possa ser uma solução para alguém com centenas de células se converter.
Ma3x

Eu tenho 287.000 linhas. Chorar.
thejohnbackes 18/05/19

12

Se a adição de uma coluna extra com os hiperlinks não for uma opção, a alternativa é usar um editor externo para incluir seu hiperlink em =hyperlink("e "), a fim de obter=hyperlink("originalCellContent")

Se você possui o Notepad ++, esta é uma receita que você pode usar para executar esta operação semi-automaticamente:

  • Copie a coluna de endereços para o Notepad ++
  • Manter ALT- SHIFTpressionado, estendeu o cursor do canto superior esquerdo para o canto inferior esquerdo, e tipo =hyperlink(". Isso adiciona =hyperlink("no início de cada entrada.
  • Abra o menu "Substituir" ( Ctrl- H), ative expressões regulares ( ALT- G) e substitua $(fim de linha) por "\). Isso adiciona uma citação fechada e um parêntese fechado (que precisa ser escapado \quando as expressões regulares são ativadas) no final de cada linha.
  • Cole os dados novamente no Excel. Na prática, basta copiar os dados e selecione a primeira célula da coluna onde deseja que os dados terminem.

Ótima resposta. Este é o único caminho a percorrer se você não desejar colunas adicionais. A solução pode ser usada para qualquer tipo de editor ou linguagem de programação (não apenas o Notepad ++). No Excel 2010, isso cria links clicáveis, mas eu tive que aplicar manualmente o "estilo de formatação do hiperlink" para realmente parecer com links (ou seja, sublinhado em azul).
absurdo

Nota: Isso não requer o bloco de notas ++ ... apenas por uma questão de clareza, você pode fazer isso com qualquer editor de texto. O truque é só embrulhar cada linha com =hyperlink("__linecontentgoeshere__")... para aqueles que podem ser enganados pela menção de Notepad ++
dreftymac

@dreftymac Isso fornece uma receita de como fazer isso quase automaticamente, não editando linha por linha. Ele aproveita a capacidade do Notepad ++ para estender o cursor em várias linhas e oferecer suporte a expressões regulares; outros editores podem ter funções semelhantes. Estou esclarecendo no início da minha resposta qual é o resultado pretendido, que deve se livrar do mal-entendido.
Antonio

1
// Estou esclarecendo no início da minha resposta qual é o resultado pretendido // Obrigado por enfatizar seu argumento. Eu não estava criticando sua resposta, apenas deixando um pouco mais claro para quem não sabe nada sobre o Notepad ++ e pode não perceber que é simplesmente um dos muitos editores de texto por aí que pode fazer esse tipo de coisa. Eu sei que você percebe isso, mas nem todos sabem .
dreftymac

1
Você também pode compor a fórmula no Excel com ="=HYPERLINK("""&A1&""")"(supondo que o URL esteja em A1). Em seguida, copie o resultado para o Bloco de notas e volte para o Excel (pode haver uma maneira melhor). Agora você tem hiperlinks em funcionamento - é possível aplicar o estilo do hiperlink no painel Estilos para obter a aparência sublinhada em azul. Se você tem o rótulo link na coluna B, você pode usar esta fórmula: ="=HYPERLINK("""&A1&""";"""&B1&""")".
Jonáš Jančařík 26/06/19

7

Este método funciona para mim usando a função de hiperlink:

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

Onde B10está a célula que contém a versão em texto da URL (neste exemplo).


= HYPERLINK ("http: //" & B10, B10) não funcionou no meu Excel 2013, no entanto = HYPERLINK ("http: //" & B10) funcionou.
agibsen

5

Com o Excel 2007 no Windows, achei essas etapas mais simples;

  1. Selecionar células com os URLs não ativos
  2. cópia de
  3. Colar como hiperlink

1
Na versão posterior (estou usando o Office 2011), isso não está funcionando - eu apenas obtenho um hiperlink para um arquivo da área de trabalho (este), não para o URL mostrado na célula. exemplo: file: // localhost / Usuários / xxxx / Desktop / Blahblahblah Nome do arquivo.xlsx - Sheet1! A2
Dannid

4

Eu choquei o Excel não fazer isso automaticamente, então aqui está minha solução, espero que seja útil para outras pessoas,

  1. Copie a coluna inteira para a área de transferência
  2. Abra isso no seu Chrome ou 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. Cole a coluna na página que você acabou de abrir no navegador e pressione "Linkify"
  2. Copie o resultado da guia para a coluna no Excel

Em vez da etapa dois, você pode usar a página abaixo, primeiro, clique em "Executar trecho de código" e cole a coluna nela

<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 mim, apenas copiei a coluna inteira, que possui os URLs em formato de texto, em outro aplicativo (por exemplo, Evernote) e, quando foram colados, tornaram-se links e, em seguida, copiei-os novamente no Excel.

A única coisa aqui é que você precisa se certificar de que os dados copiados estão alinhados com o restante das colunas.


2

Tente o seguinte:

= HYPERLINK ("mailto:" e A1, A1)

Substitua A1 pelo seu texto da célula de endereço de email.


2

Eu descobri que nenhum dos métodos aqui funcionava se o hiperlink não incluísse http: //, pois eles estavam vinculados a locais locais.

Eu também queria ignorar o script, pois os usuários não seriam capazes de mantê-lo eles mesmos e eu não estaria disponível.

Ele só será executado nas células em um intervalo selecionado se elas contiverem um ponto e nenhum espaço. Ele só será executado por até 10.000 células.

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
Obrigado, isso funcionou para endereços de email em um documento do Excel - tentei outros métodos diferentes, mas esse foi o que funcionou, embora eu precisasse alterar o http: // para mailto:
bawpie

2
  1. Crie uma nova coluna temporária de hiperlinks usando a fórmula = HYPERLINK ()
  2. Copie essa coluna para o Microsoft Word (copie para a área de transferência somente após a execução do Word).
  3. Copie tudo no novo documento do word (ctrl + a e, em seguida, ctrl + c).
  4. Cole no Excel, substituindo a coluna original do texto. Exclua a coluna temporária com a fórmula.

1

Você pode inserir a fórmula =HYPERLINK(<your_cell>,<your_cell>)na célula adjacente e arrastá-la até o fim. Isso fornecerá uma coluna com todos os links. Agora, você pode selecionar sua coluna original clicando no cabeçalho, clique com o botão direito e selecione Hide.


1

Coloque os URLs em uma tabela HTML, carregue a página HTML em um navegador, copie o conteúdo dessa página e cole no Excel. Nesse ponto, os URLs são preservados como links ativos.

A solução foi proposta em 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]

Eu achei que funcionou.

Eu tinha esses URLs:

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/

Coloquei-os em um arquivo HTML (links.html) assim:

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

Depois carreguei o links.html no meu navegador, copiei, colei no Excel e os links estavam ativos.


1

Obrigado Cassiopeia pelo código. Mudei o código dele para trabalhar com endereços locais e fiz pequenas alterações nas condições dele. Eu removi as seguintes condições:

  1. Mude http:/parafile:///
  2. Removido todo o tipo de condições de espaço em branco
  3. Alteração da condição do intervalo de células de 10k para 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

Funcionando perfeitamente, criei um hiperlink ~ 7000 em apenas alguns segundos. :) Obrigado Cassiopeia.
Junaid

por que você definiu NotPresent?
Steffen Roller

Acabei de copiar o código acima da resposta anterior da Cassiopeia. E modifiquei tanto quanto eu entendi. Portanto, não sei se o NotPresent é necessário ou não. Mas meu código modificado funciona perfeitamente bem.
Junaid

1

Eu tinha uma lista de números que alimentam os URLs que eu quero vinculados. Por exemplo, tenho a Coluna A com números de perguntas (por exemplo, 2595692, 135171) e desejo transformar esses números de perguntas em hotlinks e exibir apenas os números de perguntas.

Então, criei um hiperlink somente de texto apontando para a Coluna A e copiei para todos os meus números de pergunta:

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

Então eu copio e colo valor desta coluna de hiperlinks de texto para outra coluna.

Você acaba com uma coluna de texto semelhante à seguinte:

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

Depois, selecionei esses itens colados e executei a macro F2Entry a seguir:

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

Excluí a coluna de entrada de texto e a Coluna A.

Acabei com uma única coluna de números de perguntas com links diretos:

2595692

135171

etc.

Felicidades


0

Se você copiar o conteúdo do texto em uma nova coluna e usar:

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

na sua coluna original. Em seguida, use o $para a coluna para que fique assim:

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

Essa foi a única maneira que funcionou para mim no Excel 2010 no Windows 7. Você pode copiar a fórmula.


0

Para quem chega aqui com o Excel 2016, basta destacar a coluna e clicar na Hyperlinkguia localizada na Homefaixa de opções na Stylescaixa.

insira a descrição da imagem aqui

Edit: Infelizmente, isso apenas atualiza o estilo da célula, não a função.


3
Isso fornece apenas os estilos de célula, e não torna o URL clicável.
stenlytw

1
Sim, achei que era uma ótima solução, mas não funciona. Realmente me surpreende que isso seja difícil.
Dan

Acabei de testar isso e vocês dois estão corretos; Eu fui enganado pelos estilos de célula.
jGroot

@ jGroot - Isso é exatamente o que eu queria, apenas o estilo, sem nenhuma funcionalidade.
Raj Rajeshwar Singh Rathore

-1

A maneira mais fácil aqui

  • Destacar a coluna inteira
  • clique em '' inserir ''
  • clique em '' Hiperlink ''
  • clique em '' colocar neste documento ''
  • Clique OK
  • Isso é tudo

Isso não funciona, a menos que o link esteja relacionado a algo DENTRO do documento.
Erica

Concordo que a pergunta foi mal formulada, mas o alvo pretendido é claramente o do próprio texto.
Jason K.

-3

A maneira mais simples no Excel 2010: selecione a coluna com o texto da URL e selecione Estilo de hiperlink na guia Página inicial. Todos os URLs da coluna agora são hiperlinks.

Também clicar duas vezes em cada célula no final do texto da URL e adicionar um espaço em branco ou apenas inserir também produzirá um hiperlink. Semelhante à maneira como você precisa criar links de URL nos emails do MS Outlook.


4
Eles não são hiperlinks, eles se parecem com hiperlinks. Isso é apenas estilo.
Erica

-5

Existe uma maneira muito simples de fazer isso. Crie um hiperlink e use o Pincel para copiar a formatação. Ele criará um hiperlink para cada item.


8
Isso não funciona, apenas copia a formatação para que pareçam hiperlinks.
Re
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.