Como os hiperlinks podem ser programaticamente alterados no Excel

1

Eu tenho uma planilha com 260 células que contêm diferentes hiperlinks. Existe uma maneira de alterar programaticamente o link em vez de editar cada link?

Os hiperlinks 260 são únicos e precisam ser alterados para outros valores exclusivos. Cada link teve texto adicionado ao início de cada link. O link existente (como exemplo) é javascript:go("http...") e eu preciso remover o javascript:go(" e ") de cada um.

    
por Gail Hoefflin 28.03.2013 / 14:11

2 respostas

0

Eu acho que você precisa ser mais específico sobre o que você quer fazer. Existem muitos hiperlinks que apontam para um ou dois locais e você deseja alterá-los todos, ou há muitos diferentes e você está prestes a alterar cada um deles para outro hiperlink exclusivo. Seja qual for o seu problema, acho que este pequeno complemento do Excel pode ajudá-lo:

kutools para excel

É feito para realizar coisas como o seu problema.

Existe também este fórum, que funciona em problemas do Excel, e você certamente resolverá seu problema em menos de 5 horas:

Fórum do Excel

    
por 28.03.2013 / 14:33
0

Você pode corrigir todos os hiperlinks substituindo partes de seus endereços usando o seguinte código:

Sub ClearHyperlinks()
Dim hl As Hyperlink

For Each hl In Worksheets("Sheet1").Hyperlinks
    hl.Address = Replace(hl.Address, "javascript:go(", "")
    hl.Address = Replace(hl.Address, ")", "")
Next hl

End Sub

Cada instrução Replace() pode ser usada para remover conjuntos específicos de caracteres. Nesse caso, o primeiro remove javascript:go( e o segundo remove ) . Se você precisar remover caracteres adicionais, basta incorporá-los às instruções ou adicionar uma nova linha, seguindo o mesmo padrão. Você pode precisar fazer algumas coisas complicadas para remover quaisquer citações, pois elas também estão sendo usadas pelo próprio código. Para remover aspas duplas, você poderia alterar as linhas para isso:

hl.Address = Replace(hl.Address, "javascript:go(" & Chr(34), "")
hl.Address = Replace(hl.Address, Chr(34) & ")", "")

Chr(34) é o código para as aspas duplas. No entanto, quando eu joguei com isso agora, o Excel mudou minhas aspas duplas para %22 , que é a versão higienizada por URL das aspas duplas. Nesse caso, você quer que seu código tenha esta aparência:

hl.Address = Replace(hl.Address, "javascript:go(%22" , "")
hl.Address = Replace(hl.Address, "%22)", "")

Para executar este código, pressione Alt + F11 para abrir a janela do VBA e cole-o em um módulo novo ou existente. Se você for executá-lo apenas uma vez, basta clicar em qualquer lugar dentro deste código e pressionar F5 para executá-lo. Se você tiver que executar isso várias vezes, convém atribuir a macro a um botão.

    
por 28.03.2013 / 15:32